blob: e5665dfca55449c833e9026bda85d6942605017f [file] [log] [blame]
/* translation of file(s)
"abs.k"
"main.k"
"parse.k"
"error.k"
"occur.k"
"util.k"
"gen.k"
"gutil.k"
"pat.k"
*/
/* generated by:
* @(#)$Author$
*/
#define KC_UNPARSE
#include <stdio.h>
#include <string>
#include <stdlib.h>
#include "k.h"
#include "unpk.h"
namespace kc {
base_uview_class base_uview;
view_filename_class view_filename;
view_error_class view_error;
view_error_tID_class view_error_tID;
view_check_class view_check;
view_check_count_class view_check_count;
view_check_count1_class view_check_count1;
view_check_outmostopers_in_phylum_class view_check_outmostopers_in_phylum;
view_set_type_class view_set_type;
view_check_is_var_class view_check_is_var;
view_gen_initializephyla_c_class view_gen_initializephyla_c;
view_check_u_class view_check_u;
view_check_r_class view_check_r;
view_check_viewnames_class view_check_viewnames;
view_check_uniq_class view_check_uniq;
view_check_uniq1_class view_check_uniq1;
view_check_uniq2_class view_check_uniq2;
view_make_patternreps_class view_make_patternreps;
view_printer_outputfileline_class view_printer_outputfileline;
view_printer_reset_class view_printer_reset;
view_no_of_printed_string_chars_reset_class view_no_of_printed_string_chars_reset;
view_open_namespace_class view_open_namespace;
view_close_namespace_class view_close_namespace;
view_gen_k_h_class view_gen_k_h;
view_gen_end_k_h_class view_gen_end_k_h;
view_gen_k_c_class view_gen_k_c;
view_gen_alloc_h_class view_gen_alloc_h;
view_gen_alloc_c_class view_gen_alloc_c;
view_gen_deprecated_class view_gen_deprecated;
view_gen_enumphyla_h_class view_gen_enumphyla_h;
view_gen_enumoperators_h_class view_gen_enumoperators_h;
view_gen_operatormap_type_h_class view_gen_operatormap_type_h;
view_gen_phylummap_c_class view_gen_phylummap_c;
view_gen_operatormap_c_class view_gen_operatormap_c;
view_count_args_class view_count_args;
view_count_attrs_class view_count_attrs;
view_count_nonstaticmembers_class view_count_nonstaticmembers;
view_gen_operatormap_subphyla_class view_gen_operatormap_subphyla;
view_gen_operatormap_attributes_class view_gen_operatormap_attributes;
view_gen_uniqmap_c_class view_gen_uniqmap_c;
view_gen_uniqmap_c_1_class view_gen_uniqmap_c_1;
view_gen_uniqmap_c_2_class view_gen_uniqmap_c_2;
view_gen_nodetypedefs_h_class view_gen_nodetypedefs_h;
view_gen_nodetypes_h_class view_gen_nodetypes_h;
view_gen_yaccstacktype_h_class view_gen_yaccstacktype_h;
view_gen_noofoperators_h_class view_gen_noofoperators_h;
view_gen_assertmacros_h_class view_gen_assertmacros_h;
view_gen_assertmacros_c_class view_gen_assertmacros_c;
view_gen_operatordecls_h_class view_gen_operatordecls_h;
view_gen_operatorcast_h_class view_gen_operatorcast_h;
view_gen_operatordefs_c_class view_gen_operatordefs_c;
view_gen_operatordefs_c_0_class view_gen_operatordefs_c_0;
view_gen_operatordefs_c_1_class view_gen_operatordefs_c_1;
view_gen_operatordefs_c_2_class view_gen_operatordefs_c_2;
view_gen_initializephyla_whiletest_c_class view_gen_initializephyla_whiletest_c;
view_gen_initializephyla_init_el_c_class view_gen_initializephyla_init_el_c;
view_gen_initializephyla_update_loop_c_class view_gen_initializephyla_update_loop_c;
view_gen_operatordefs_nonhash_c_class view_gen_operatordefs_nonhash_c;
view_gen_operatordefs_hash_c_class view_gen_operatordefs_hash_c;
view_gen_access_functions_class view_gen_access_functions;
view_gen_create_function_class view_gen_create_function;
view_gen_attributeOf_function_class view_gen_attributeOf_function;
view_gen_argseqnr_class view_gen_argseqnr;
view_gen_fnarg_asserts_class view_gen_fnarg_asserts;
view_gen_fnarg_and_decls_class view_gen_fnarg_and_decls;
view_gen_fnarg_and_decls_predef_class view_gen_fnarg_and_decls_predef;
view_gen_assignments_class view_gen_assignments;
view_gen_assignment_inis_class view_gen_assignment_inis;
view_gen_user_assignment_inis_class view_gen_user_assignment_inis;
view_gen_assignments_predef_class view_gen_assignments_predef;
view_gen_assignments_predef_ini_class view_gen_assignments_predef_ini;
view_gen_test_class view_gen_test;
view_gen_error_decls_h_class view_gen_error_decls_h;
view_gen_error_defs_c_class view_gen_error_defs_c;
view_gen_printdotdecls_h_class view_gen_printdotdecls_h;
view_gen_printdotdefs_c_class view_gen_printdotdefs_c;
view_gen_printdotedges_c_class view_gen_printdotedges_c;
view_gen_listdecls_h_class view_gen_listdecls_h;
view_gen_listdefs_c_class view_gen_listdefs_c;
view_gen_includes_class view_gen_includes;
view_do_gen_includes_class view_do_gen_includes;
view_gen_csgio_start_h_class view_gen_csgio_start_h;
view_gen_csgio_end_h_class view_gen_csgio_end_h;
view_gen_csgio_h_class view_gen_csgio_h;
view_gen_csgio_start_c_class view_gen_csgio_start_c;
view_gen_csgio_c_class view_gen_csgio_c;
view_gen_copy_attributes_c_class view_gen_copy_attributes_c;
view_gen_copydefs_c_class view_gen_copydefs_c;
view_gen_rewritek_h_class view_gen_rewritek_h;
view_gen_end_rewritek_h_class view_gen_end_rewritek_h;
view_gen_rewritek_c_class view_gen_rewritek_c;
view_gen_rewritedefs_c_class view_gen_rewritedefs_c;
view_gen_rewritedefs_default_c_class view_gen_rewritedefs_default_c;
view_gen_rewritedefs_other_c_class view_gen_rewritedefs_other_c;
view_gen_rewritedefs_rewritearg_c_class view_gen_rewritedefs_rewritearg_c;
view_gen_rewritedefs_nl_arg_c_class view_gen_rewritedefs_nl_arg_c;
view_gen_rewritedefs_testarg_c_class view_gen_rewritedefs_testarg_c;
view_gen_rewritedefs_dotestarg_c_class view_gen_rewritedefs_dotestarg_c;
view_gen_rewritedefs_args_c_class view_gen_rewritedefs_args_c;
view_gen_rewritedefs_body_c_class view_gen_rewritedefs_body_c;
view_gen_withcases_and_default_class view_gen_withcases_and_default;
view_rw_predicates_class view_rw_predicates;
view_wc_predicates_class view_wc_predicates;
view_unp_predicates_class view_unp_predicates;
view_wc_bindings_class view_wc_bindings;
view_unp_bindings_class view_unp_bindings;
view_rw_bindings_class view_rw_bindings;
view_gen_fnk_h_class view_gen_fnk_h;
view_gen_fnkdecls_c_class view_gen_fnkdecls_c;
view_gen_fnk_c_class view_gen_fnk_c;
view_gen_fn_pointer_name_class view_gen_fn_pointer_name;
view_gen_fnkargs_class view_gen_fnkargs;
view_gen_fnkdecls_class view_gen_fnkdecls;
view_gen_fns_start_h_class view_gen_fns_start_h;
view_gen_fns_end_h_class view_gen_fns_end_h;
view_gen_fns_start_c_class view_gen_fns_start_c;
view_gen_fns_owninclude_c_class view_gen_fns_owninclude_c;
view_gen_unpk_h_class view_gen_unpk_h;
view_gen_unparsedecls_h_class view_gen_unparsedecls_h;
view_gen_rewritedecls_h_class view_gen_rewritedecls_h;
view_uview_def_class view_uview_def;
view_gen_end_unpk_h_class view_gen_end_unpk_h;
view_gen_unpk_c_class view_gen_unpk_c;
view_gen_default_types_unpk_c_class view_gen_default_types_unpk_c;
view_gen_unparsedefs_c_class view_gen_unparsedefs_c;
view_gen_unparsedefs_other_c_class view_gen_unparsedefs_other_c;
view_gen_unpstr_c_class view_gen_unpstr_c;
view_gen_user_predicates_class view_gen_user_predicates;
view_predicate_bindings_class view_predicate_bindings;
view_checklanguagenames_class view_checklanguagenames;
view_output_collection_class view_output_collection;
view_gen_classdecls1_h_class view_gen_classdecls1_h;
view_gen_classdecls2_h_class view_gen_classdecls2_h;
view_gen_classdefs_c_class view_gen_classdefs_c;
view_gen_subphylumdefs_c_class view_gen_subphylumdefs_c;
view_gen_cast_class view_gen_cast;
view_gen_hashtables_h_class view_gen_hashtables_h;
view_gen_hashtables_c_class view_gen_hashtables_c;
view_gen_yxx_union_h_class view_gen_yxx_union_h;
view_gen_member_dcl_h_class view_gen_member_dcl_h;
view_gen_set_subphylumdefs_c_class view_gen_set_subphylumdefs_c;
view_gen_viewvars_c_class view_gen_viewvars_c;
view_gen_argseqnr_rec_class view_gen_argseqnr_rec;
view_gen_opt_const_class view_gen_opt_const;
view_uview_class_decl_class view_uview_class_decl;
view_uview_class_def_class view_uview_class_def;
view_rview_class_decl_class view_rview_class_decl;
view_rview_class_def_class view_rview_class_def;
view_collect_strings_class view_collect_strings;
view_class_of_op_class view_class_of_op;
view_class_of_phy_class view_class_of_phy;
impl_uviews uviews[] = {
{"base_uview",&base_uview},
{"view_error_format", 0},
{"view_filename",&view_filename},
{"view_error",&view_error},
{"view_error_tID",&view_error_tID},
{"view_check",&view_check},
{"view_check_count",&view_check_count},
{"view_check_count1",&view_check_count1},
{"view_check_outmostopers_in_phylum",&view_check_outmostopers_in_phylum},
{"view_set_type",&view_set_type},
{"view_check_is_var",&view_check_is_var},
{"view_gen_initializephyla_c",&view_gen_initializephyla_c},
{"view_check_u",&view_check_u},
{"view_check_r",&view_check_r},
{"view_check_viewnames",&view_check_viewnames},
{"view_check_uniq",&view_check_uniq},
{"view_check_uniq1",&view_check_uniq1},
{"view_check_uniq2",&view_check_uniq2},
{"view_make_patternreps",&view_make_patternreps},
{"view_printer_outputfileline",&view_printer_outputfileline},
{"view_printer_reset",&view_printer_reset},
{"view_no_of_printed_string_chars_reset",&view_no_of_printed_string_chars_reset},
{"view_open_namespace",&view_open_namespace},
{"view_close_namespace",&view_close_namespace},
{"view_gen_k_h",&view_gen_k_h},
{"view_gen_end_k_h",&view_gen_end_k_h},
{"view_gen_k_c",&view_gen_k_c},
{"view_gen_alloc_h",&view_gen_alloc_h},
{"view_gen_alloc_c",&view_gen_alloc_c},
{"view_gen_deprecated",&view_gen_deprecated},
{"view_gen_enumphyla_h",&view_gen_enumphyla_h},
{"view_gen_enumoperators_h",&view_gen_enumoperators_h},
{"view_gen_operatormap_type_h",&view_gen_operatormap_type_h},
{"view_gen_phylummap_c",&view_gen_phylummap_c},
{"view_gen_operatormap_c",&view_gen_operatormap_c},
{"view_count_args",&view_count_args},
{"view_count_attrs",&view_count_attrs},
{"view_count_nonstaticmembers",&view_count_nonstaticmembers},
{"view_gen_operatormap_subphyla",&view_gen_operatormap_subphyla},
{"view_gen_operatormap_attributes",&view_gen_operatormap_attributes},
{"view_gen_uniqmap_c",&view_gen_uniqmap_c},
{"view_gen_uniqmap_c_1",&view_gen_uniqmap_c_1},
{"view_gen_uniqmap_c_2",&view_gen_uniqmap_c_2},
{"view_gen_nodetypedefs_h",&view_gen_nodetypedefs_h},
{"view_gen_nodetypes_h",&view_gen_nodetypes_h},
{"view_gen_yaccstacktype_h",&view_gen_yaccstacktype_h},
{"view_gen_noofoperators_h",&view_gen_noofoperators_h},
{"view_gen_assertmacros_h",&view_gen_assertmacros_h},
{"view_gen_assertmacros_c",&view_gen_assertmacros_c},
{"view_gen_operatordecls_h",&view_gen_operatordecls_h},
{"view_gen_operatorcast_h",&view_gen_operatorcast_h},
{"view_gen_operatordefs_c",&view_gen_operatordefs_c},
{"view_gen_operatordefs_c_0",&view_gen_operatordefs_c_0},
{"view_gen_operatordefs_c_1",&view_gen_operatordefs_c_1},
{"view_gen_operatordefs_c_2",&view_gen_operatordefs_c_2},
{"view_gen_initializephyla_whiletest_c",&view_gen_initializephyla_whiletest_c},
{"view_gen_initializephyla_init_el_c",&view_gen_initializephyla_init_el_c},
{"view_gen_initializephyla_update_loop_c",&view_gen_initializephyla_update_loop_c},
{"view_gen_operatordefs_nonhash_c",&view_gen_operatordefs_nonhash_c},
{"view_gen_operatordefs_hash_c",&view_gen_operatordefs_hash_c},
{"view_gen_access_functions",&view_gen_access_functions},
{"view_gen_create_function",&view_gen_create_function},
{"view_gen_attributeOf_function",&view_gen_attributeOf_function},
{"view_gen_argseqnr",&view_gen_argseqnr},
{"view_gen_fnarg_asserts",&view_gen_fnarg_asserts},
{"view_gen_fnarg_and_decls",&view_gen_fnarg_and_decls},
{"view_gen_fnarg_and_decls_predef",&view_gen_fnarg_and_decls_predef},
{"view_gen_assignments",&view_gen_assignments},
{"view_gen_assignment_inis",&view_gen_assignment_inis},
{"view_gen_user_assignment_inis",&view_gen_user_assignment_inis},
{"view_gen_assignments_predef",&view_gen_assignments_predef},
{"view_gen_assignments_predef_ini",&view_gen_assignments_predef_ini},
{"view_gen_test",&view_gen_test},
{"view_gen_error_decls_h",&view_gen_error_decls_h},
{"view_gen_error_defs_c",&view_gen_error_defs_c},
{"view_gen_printdotdecls_h",&view_gen_printdotdecls_h},
{"view_gen_printdotdefs_c",&view_gen_printdotdefs_c},
{"view_gen_printdotedges_c",&view_gen_printdotedges_c},
{"view_gen_listdecls_h",&view_gen_listdecls_h},
{"view_gen_listdefs_c",&view_gen_listdefs_c},
{"view_gen_includes",&view_gen_includes},
{"view_do_gen_includes",&view_do_gen_includes},
{"view_gen_csgio_start_h",&view_gen_csgio_start_h},
{"view_gen_csgio_end_h",&view_gen_csgio_end_h},
{"view_gen_csgio_h",&view_gen_csgio_h},
{"view_gen_csgio_start_c",&view_gen_csgio_start_c},
{"view_gen_csgio_c",&view_gen_csgio_c},
{"view_gen_copy_attributes_c",&view_gen_copy_attributes_c},
{"view_gen_copydefs_c",&view_gen_copydefs_c},
{"view_gen_rewritek_h",&view_gen_rewritek_h},
{"view_gen_end_rewritek_h",&view_gen_end_rewritek_h},
{"view_gen_rewritek_c",&view_gen_rewritek_c},
{"view_gen_rewritedefs_c",&view_gen_rewritedefs_c},
{"view_gen_rewritedefs_default_c",&view_gen_rewritedefs_default_c},
{"view_gen_rewritedefs_other_c",&view_gen_rewritedefs_other_c},
{"view_gen_rewritedefs_rewritearg_c",&view_gen_rewritedefs_rewritearg_c},
{"view_gen_rewritedefs_nl_arg_c",&view_gen_rewritedefs_nl_arg_c},
{"view_gen_rewritedefs_testarg_c",&view_gen_rewritedefs_testarg_c},
{"view_gen_rewritedefs_dotestarg_c",&view_gen_rewritedefs_dotestarg_c},
{"view_gen_rewritedefs_args_c",&view_gen_rewritedefs_args_c},
{"view_gen_rewritedefs_body_c",&view_gen_rewritedefs_body_c},
{"view_gen_withcases_and_default",&view_gen_withcases_and_default},
{"view_rw_predicates",&view_rw_predicates},
{"view_wc_predicates",&view_wc_predicates},
{"view_unp_predicates",&view_unp_predicates},
{"view_wc_bindings",&view_wc_bindings},
{"view_unp_bindings",&view_unp_bindings},
{"view_rw_bindings",&view_rw_bindings},
{"view_gen_fnk_h",&view_gen_fnk_h},
{"view_gen_fnkdecls_c",&view_gen_fnkdecls_c},
{"view_gen_fnk_c",&view_gen_fnk_c},
{"view_gen_fn_pointer_name",&view_gen_fn_pointer_name},
{"view_gen_fnkargs",&view_gen_fnkargs},
{"view_gen_fnkdecls",&view_gen_fnkdecls},
{"view_gen_fns_start_h",&view_gen_fns_start_h},
{"view_gen_fns_end_h",&view_gen_fns_end_h},
{"view_gen_fns_start_c",&view_gen_fns_start_c},
{"view_gen_fns_owninclude_c",&view_gen_fns_owninclude_c},
{"view_gen_unpk_h",&view_gen_unpk_h},
{"view_gen_unparsedecls_h",&view_gen_unparsedecls_h},
{"view_gen_rewritedecls_h",&view_gen_rewritedecls_h},
{"view_uview_def",&view_uview_def},
{"view_gen_end_unpk_h",&view_gen_end_unpk_h},
{"view_gen_unpk_c",&view_gen_unpk_c},
{"view_gen_default_types_unpk_c",&view_gen_default_types_unpk_c},
{"view_gen_unparsedefs_c",&view_gen_unparsedefs_c},
{"view_gen_unparsedefs_default_c", 0},
{"view_gen_unparsedefs_other_c",&view_gen_unparsedefs_other_c},
{"view_gen_unpstr_c",&view_gen_unpstr_c},
{"view_gen_user_predicates",&view_gen_user_predicates},
{"view_predicate_bindings",&view_predicate_bindings},
{"view_checklanguagenames",&view_checklanguagenames},
{"view_output_collection",&view_output_collection},
{"view_gen_classdecls1_h",&view_gen_classdecls1_h},
{"view_gen_classdecls2_h",&view_gen_classdecls2_h},
{"view_gen_classdefs_c",&view_gen_classdefs_c},
{"view_gen_subphylumdefs_c",&view_gen_subphylumdefs_c},
{"view_gen_cast",&view_gen_cast},
{"view_gen_hashtables_h",&view_gen_hashtables_h},
{"view_gen_hashtables_c",&view_gen_hashtables_c},
{"view_gen_yxx_union_h",&view_gen_yxx_union_h},
{"view_gen_member_dcl_h",&view_gen_member_dcl_h},
{"view_gen_set_subphylumdefs_c",&view_gen_set_subphylumdefs_c},
{"view_gen_viewvars_c",&view_gen_viewvars_c},
{"view_gen_argseqnr_rec",&view_gen_argseqnr_rec},
{"view_gen_opt_const",&view_gen_opt_const},
{"view_uview_class_decl",&view_uview_class_decl},
{"view_uview_class_def",&view_uview_class_def},
{"view_rview_class_decl",&view_rview_class_decl},
{"view_rview_class_def",&view_rview_class_def},
{"view_collect_strings",&view_collect_strings},
{"view_class_of_op",&view_class_of_op},
{"view_class_of_phy",&view_class_of_phy},
{0,0}
};
} // namespace kc
namespace kc { }
using namespace kc;
/* included stuff */
//
// The Termprocessor Kimwitu++
//
// Copyright (C) 1991 University of Twente, Dept TIOS.
// Copyright (C) 1998-2003 Humboldt-University of Berlin, Institute of Informatics
// All rights reserved.
//
// Kimwitu++ 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 2 of the License, or
// (at your option) any later version.
//
// Kimwitu++ 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 Kimwitu++; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
#include "util.h"
#include "occur.h"
static int cl_scope = 0;
#include <stack>
static std::stack<operators> outmostoperators;
static std::stack<dollarvarstatus> dollarvarsallowed;
static std::stack<int> inforeachcontext;
static std::stack<arguments> argumentsstack;
static std::stack<ID> phylumstack;
static std::stack<phylumnames> phylumnamesstack;
static std::stack<withexpressions> withexpressionsstack;
static std::stack<ID> operatorstack;
static std::stack<variables> variablesstack;
#include "parse.h"
static ID cl_uniqueID = 0;
static ID cl_storageID = 0;
#include "pat.h" /* for syn_outmostpatterns and v_resetbindingidmarks */
extern unparseitems The_current_unparseitems;
#include "defs.h"
#define FMOP 38
#define FMSZ 3
#define FMNCR 8
#define FMNCRD 8
#define FMEXIST 8
#define FMFRNC 8
#define FMFRRC 8
#define FMFREED 8
#define FMREM 8
#define FMTOT 9
const char* preDefTypeAndName[][2] = { {"", ""}, {"kc_char_t const*", "name"}, {"kc_char_t const*", "name"},
{"REAL", "value"}, {"INTEGER", "value"}, {"void*", "pointer"}};
#include "gen.h"
// Definition of the view class for view_gen_unparsedefs_default_c;
// it contains an additional var to indicate whether we are unparsing a list pylum
// and another to show whether the user has supplied rules for the base view
struct view_gen_unparsedefs_default_c_class :view_gen_unparsedefs_default_c_baseclass
{
bool isList;
bool isOnlyDefault;
view_gen_unparsedefs_default_c_class(bool LonL, bool oD):
isList(LonL), isOnlyDefault(oD) { }
};
view_gen_unparsedefs_default_c_class view_gen_unparsedefs_default_c(false, false);
// To avoid covariant return types for broken compilers, we want to have three choices:
// Use them, don't use them, generate both and decide with preprocessor macros
// extended version: typename also in function name
void
covariant_choice(ID yest, const char* yess1, const char* yess2, const char *no1, const char *no2,
printer_functor kc_printer, uview kc_current_view)
{
kc_printer("\n", kc_current_view);
if (g_options.covariant == 'p') kc_printer("#ifndef NO_COVARIANT_RETURN\n", kc_current_view);
if (g_options.covariant != 'n') {
yest->unparse(kc_printer, kc_current_view);
kc_printer(yess1, kc_current_view);
if (yess2!=0) {
yest->unparse(kc_printer, kc_current_view);
kc_printer(yess2, kc_current_view);
}
}
if (g_options.covariant == 'p') kc_printer("\n#else\n", kc_current_view);
if (g_options.covariant != 'y') {
kc_printer(no1, kc_current_view);
if (no2!=0) {
yest->unparse(kc_printer, kc_current_view);
kc_printer(no2, kc_current_view);
}
}
if (g_options.covariant == 'p') kc_printer("\n#endif // NO_COVARIANT_RETURN\n", kc_current_view);
}
// short version: typename exactly once
inline void
covariant_choice(ID yest, const char* yess, const char *no, printer_functor kc_printer, uview kc_current_view)
{ covariant_choice(yest, yess, 0, no, 0, kc_printer, kc_current_view); }
// This printer functor doesn't print, but instead counts each of
// its invocations. Handy to find out whether a future unparsing
// will produce any output at all.
class count_printer: public printer_functor_class {
int count;
public:
count_printer(): count(0) { }
virtual void operator()(const char* s, uview v) { count++;}
int operator()() { return count;}
};
#include "gutil.h"
#include <map>
#include <string>
#include <stack>
namespace { // everything here is local to unpk.cc
int g_no_of_phyla;
int g_no_of_operators;
int gl_no_of_args;
int gl_generic_counter;
bool gl_isnotlist;
std::map<string, path> gl_bindings;
const int PHYLUMNUMBEROFFSET=0; /* should be >= 0; == the index of the last dummy element */
const int OPERATORNUMBEROFFSET=0; /* should be >= 0; == the index of the last dummy element */
std::stack<ID> selvarstack;
#define cf_pushselvar(o) do { selvarstack.push(o); \
g_ctext_level++; \
} while(0)
#define cf_topselvar() selvarstack.top()
#define cf_popselvar() do { selvarstack.pop();\
g_ctext_level--; \
} while(0)
std::stack<ID> dollarvarstack;
std::stack<ID> dollarvarextstack;
ID gl_phylum = 0;
phylumdeclaration gl_phydecl = 0;
ID gl_view = 0;
ID gl_operator = 0;
alternative gl_alternative = 0;
Ccode_option gl_cco = 0;
storageoption gl_storageoption = 0;
bool gl_atomicity;
arguments gl_args = 0;
ac_identifier_list gl_idents = 0;
fndeclarations gl_members = 0;
rewriterulesinfo gl_rewrite_rewriteinfo = 0;
const char *g_emptystring = "";
int g_ctext_level = 0;
int g_withexpr_nr = 0;
int g_fe_selvar_nr = 0;
const char *gl_return_type = "";
ID gl_return_ID = 0;
int gl_star_count = 0;
const char *gl_function = "";
ID gl_sto = 0;
bool gl_rewrite_goto_used = false;
bool gl_unparse_goto_used = false;
ID gl_type = 0;
int gl_j = 0;
bool gl_print_line_directive = false;
uview_enum gl_outer_view;
}
/* end included stuff */
namespace kc {
#ifndef KC_TRACE_PROVIDED
#define KC_TRACE_PROVIDED(COND,FILE,LINE,NODE) COND
#endif
void
impl_abstract_phylum::unparse(printer_function opf, uview uv)
{
printer_functor_function_wrapper pf(opf);
do_unparse(pf, uv);
}
// Everything given as a pointer is expected to have an unparse-method (we
// believe it's a phylum), unless there's a specialisation for it
void
unparse(abstract_phylum kc_p, printer_functor kc_printer, uview kc_current_view)
{
kc_p->unparse(kc_printer, kc_current_view);
}
void
unparse(void *kc_p, printer_functor kc_printer, uview kc_current_view)
{
// MPi: 20020628 there shouldn't be any left
assertionFailed("Unparse called for untyped pointer");
// MPi: cast should be unnecessary, but there are still void*
reinterpret_cast<impl_abstract_phylum*>(kc_p)->unparse(kc_printer, kc_current_view);
}
void
unparse(int kc_v, printer_functor kc_printer, uview kc_current_view)
{
kc_char kc_string[200];
kc_print_integer(kc_string,kc_v);
kc_printer(kc_string, kc_current_view);
}
void
unparse(double kc_v, printer_functor kc_printer, uview kc_current_view)
{
kc_char kc_string[200];
kc_print_real(kc_string,kc_v);
kc_printer(kc_string, kc_current_view);
}
void
unparse(kc_char *kc_v, printer_functor kc_printer, uview kc_current_view)
{
kc_printer(kc_v, kc_current_view);
}
void
unparse(kc_string_t kc_v, printer_functor kc_printer, uview kc_current_view)
{
kc_printer(kc_v.c_str(), kc_current_view);
}
void
impl_abstract_phylum::default_unparse(printer_functor kc_printer, uview kc_current_view)
{
register int no_sons = operator_info[prod_sel()].no_sons;
for (int i=0; i < no_sons; i++)
subphylum(i)->unparse(kc_printer, kc_current_view);
}
void
impl_casestring__Str::do_unparse(printer_functor kc_printer, uview kc_current_view)
{
kc::unparse(name, kc_printer, kc_current_view);
}
void
impl_nocasestring_NoCaseStr::do_unparse(printer_functor kc_printer, uview kc_current_view)
{
kc::unparse(name, kc_printer, kc_current_view);
}
void
impl_integer__Int::do_unparse(printer_functor kc_printer, uview kc_current_view)
{
kc::unparse(value, kc_printer, kc_current_view);
}
void
impl_real__Real::do_unparse(printer_functor kc_printer, uview kc_current_view)
{
kc::unparse(value, kc_printer, kc_current_view);
}
void
impl_voidptr__VoidPtr::do_unparse(printer_functor kc_printer, uview kc_current_view)
{
kc::unparse(pointer, kc_printer, kc_current_view);
}
void
impl_uniqID_Str::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const casestring cs = this->casestring_1;
kc::unparse(cs, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_ID_Id::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_class_of_phy_enum: {
view_class_of_phy_class& kc_current_view=static_cast<view_class_of_phy_class&>(kc_current_view_base);
{
const uniqID pid = this->uniqID_1;
{ kc_printer(kc_t("impl_"), kc_current_view); }
kc::unparse(pid, kc_printer, kc_current_view);
}
break;
}
case view_class_of_op_enum: {
view_class_of_op_class& kc_current_view=static_cast<view_class_of_op_class&>(kc_current_view_base);
{
const uniqID oid = this->uniqID_1;
ID pid=f_phylumofoperator(this);
if (f_listelementphylum(pid)->eq(f_emptyId()))
{
kc::unparse(pid, kc_printer, view_class_of_phy);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
}
else
{
kc::unparse(pid, kc_printer, view_class_of_phy);
}
}
break;
}
case view_output_collection_enum: {
view_output_collection_class& kc_current_view=static_cast<view_output_collection_class&>(kc_current_view_base);
{
const ID id = this/**/;
{ kc_printer(kc_t("char* kc_language_"), kc_current_view); }
kc::unparse(id, kc_printer, base_uview);
{ kc_printer(kc_t(" [] = {\n"), kc_current_view); }
}
break;
}
case view_gen_fn_pointer_name_enum: {
view_gen_fn_pointer_name_class& kc_current_view=static_cast<view_gen_fn_pointer_name_class&>(kc_current_view_base);
if ((this->uniqID_1->prod_sel() == sel_Str)) {
const ID id = this/**/;
const uniqID uniqId = this->uniqID_1;
const casestring s = phylum_cast<const impl_uniqID_Str*>(this->uniqID_1)->casestring_1;
if(f_ispredefinedphylum(id) && strncmp(s->name, "abstract_", 9)!=0)
{
{ kc_printer(kc_t("impl_"), kc_current_view); }
kc::unparse(uniqId, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
UNPARSE(f_operatorofphylum(id, 1));
}
else if(f_isphylum(id))
{
{ kc_printer(kc_t("impl_"), kc_current_view); }
kc::unparse(uniqId, kc_printer, kc_current_view);
}
else if(f_alternativeofoperator(id))
{
UNPARSE(f_phylumofoperator(id));
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(uniqId, kc_printer, kc_current_view);
}
else
{
kc::unparse(uniqId, kc_printer, kc_current_view);
}
} else
goto kc_unparsing_default;
break;
}
case view_error_tID_enum: {
view_error_tID_class& kc_current_view=static_cast<view_error_tID_class&>(kc_current_view_base);
{
const uniqID uid = this->uniqID_1;
kc::unparse(uid->type, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(uid, kc_printer, kc_current_view);
if (uid->line != 0)
{
{ kc_printer(kc_t(" (introduced at "), kc_current_view); }
kc::unparse(uid->file, kc_printer, kc_current_view);
{ kc_printer(kc_t(":"), kc_current_view); }
kc::unparse(uid->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(")"), kc_current_view); }
}
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const uniqID uid = this->uniqID_1;
kc::unparse(uid, kc_printer, kc_current_view);
if (uid->line != 0)
{
{ kc_printer(kc_t(" (introduced at "), kc_current_view); }
kc::unparse(uid->file, kc_printer, kc_current_view);
{ kc_printer(kc_t(":"), kc_current_view); }
kc::unparse(uid->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(")"), kc_current_view); }
}
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_INT_Int::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const integer i = this->integer_1;
kc::unparse(i, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_STRING_String::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_phylumdeclarationsroot_PhylumDeclarations::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_rview_class_decl_enum: {
view_rview_class_decl_class& kc_current_view=static_cast<view_rview_class_decl_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("\
\ntypedef enum {\
\n"), kc_current_view); }
kc::unparse(Therviewnames, kc_printer, view_gen_rewritek_h);
{ kc_printer(kc_t("last_rview\
\n} rview_enum;\
\n\
\nstruct impl_rviews {\
\n const char *name;\
\n rview_class *view;\
\n};\
\nextern struct impl_rviews rviews[];\
\nclass "), kc_current_view); }
if(g_options.dllexports!="") {
PRINT(g_options.dllexports.c_str());
PRINT(" ");
}
{ kc_printer(kc_t("rview_class {\
\n\rprotected:\v\
\n // only used in derivations\
\n rview_class(rview_enum v): m_view(v) { }\
\n rview_class(const rview_class&): m_view(base_rview_enum)\
\n \v{ /* do not copy"), kc_current_view );
kc_printer(kc_t(" m_view */ }\r\
\n\rpublic:\v\
\n const char* name() const\
\n \v{ return rviews[m_view].name; }\r\
\n operator rview_enum() const\
\n \v{ return m_view; }\r\
\n bool operator==(const rview_cl"), kc_current_view );
kc_printer(kc_t("ass& other) const\
\n \v{ return m_view == other.m_view; }\r\
\n"), kc_current_view); }
if(g_options.rw_loop)
{
{ kc_printer(kc_t(" // Called when the rewrite_loop enters a node (just before the call\
\n // to do_rewrite and before entering its sons).\
\n // The result of this function is used instead of current in the "), kc_current_view );
kc_printer(kc_t("rewrite process.\
\n // If skip_current is set to true (default is false), the result is not rewritten\
\n // any further (neither do_rewrite() nor post_rewrite() are called).\
\n virtual ab"), kc_current_view );
kc_printer(kc_t("stract_phylum pre_rewrite(abstract_phylum current, bool& /* skip_current */)\
\n \v{ return current; }\r\
\n // Called when the rewrite_loop leaves current node (after the call to do_rewrite).\
\n "), kc_current_view );
kc_printer(kc_t(" // Current is the finally rewritten node.\
\n // The result is used instead of the argument to build the final tree.\
\n // If again is set to true (default is false) the result node is rewritt"), kc_current_view );
kc_printer(kc_t("en again.\
\n virtual abstract_phylum post_rewrite(abstract_phylum current, bool& /* again */)\
\n \v{ return current; }\r\
\n"), kc_current_view); }
}
{ kc_printer(kc_t("\rprivate:\v\
\n rview_enum m_view;\
\n};\
\n"), kc_current_view); }
}
break;
}
case view_uview_class_decl_enum: {
view_uview_class_decl_class& kc_current_view=static_cast<view_uview_class_decl_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("\
\ntypedef enum {\
\n"), kc_current_view); }
kc::unparse(Theuviewnames, kc_printer, view_uview_def);
{ kc_printer(kc_t(" last_uview\
\n} uview_enum;\
\n\
\nstruct impl_uviews {\
\n const char *name;\
\n uview_class *view;\
\n};\
\nextern impl_uviews uviews[];\
\nclass "), kc_current_view); }
if(g_options.dllexports!="") {
PRINT(g_options.dllexports.c_str());
PRINT(" ");
}
{ kc_printer(kc_t("uview_class {\
\n\rprotected:\v\
\n // only used in derivations\
\n uview_class(uview_enum v): m_view(v) { }\
\n uview_class(c_uview): m_view(base_uview_enum)\
\n \v{ /* do not copy m_view */ "), kc_current_view );
kc_printer(kc_t("}\r\
\n\rpublic:\v\
\n const char* name() const\
\n \v{ return uviews[m_view].name; }\r\
\n operator uview_enum() const\
\n \v{ return m_view; }\r\
\n bool operator==(const uview_class& other)"), kc_current_view );
kc_printer(kc_t(" const\
\n \v{ return m_view == other.m_view; }\r\
\n\rprivate:\v\
\n uview_enum m_view;\
\n};\
\n\
\nclass "), kc_current_view); }
if(g_options.dllexports!="") {
PRINT(g_options.dllexports.c_str());
PRINT(" ");
}
{ kc_printer(kc_t("printer_functor_class {\
\n\rpublic:\v\
\n virtual void operator()(const kc_char_t*, uview) { }\
\n virtual ~printer_functor_class() { }\
\n};\
\n\
\nclass "), kc_current_view); }
if(g_options.dllexports!="") {
PRINT(g_options.dllexports.c_str());
PRINT(" ");
}
{ kc_printer(kc_t("printer_functor_function_wrapper : public printer_functor_class {\
\n\rpublic:\v\
\n printer_functor_function_wrapper(const printer_function opf =0): m_old_printer(opf) { }\
\n virtual ~printer_f"), kc_current_view );
kc_printer(kc_t("unctor_function_wrapper() { }\
\n virtual void operator()(const kc_char_t* s, uview v)\
\n \v{ if(m_old_printer) m_old_printer(s, v); }\r\
\n\rprivate:\v\
\n printer_function m_old_printer;\
\n};"), kc_current_view );
kc_printer(kc_t("\
\n"), kc_current_view); }
}
break;
}
case view_gen_yxx_union_h_enum: {
view_gen_yxx_union_h_class& kc_current_view=static_cast<view_gen_yxx_union_h_class&>(kc_current_view_base);
{
const phylumdeclarations d = this->phylumdeclarations_1;
{ kc_printer(kc_t("union {\
\n"), kc_current_view); }
kc::unparse(d, kc_printer, kc_current_view);
{ kc_printer(kc_t("};\
\n"), kc_current_view); }
}
break;
}
case view_gen_hashtables_c_enum: {
view_gen_hashtables_c_class& kc_current_view=static_cast<view_gen_hashtables_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("\
\nextern const char* kc_storageclassnames[];\
\n\
\n#ifdef KC_STATISTICS\
\nvoid do_print_operator_statistics(FILE * kc_f)\
\n{\
\n unsigned int kc_i;\
\n assertNonNull( kc_f );\
\n fprintf("), kc_current_view );
kc_printer(kc_t("kc_f, \"%-*s| %-*s| %-*s| %-*s| %-*s| %-*s| %-*s| %-*s| %-*s| %-*s\\n\", 38 , \"Operator\", 3, \"Sz\", 8, \"#oper\", 8, \"#new\", 8, \"#exist\", 8, \"#frnrec\", 8, \"#frrec\", 8, \"#freed\", 8, \"#rem\""), kc_current_view );
kc_printer(kc_t(", 9, \"total (bytes)\");\
\n fprintf(kc_f, \"%-*s|%*s |%*d |%*d |%*d |%*d |%*d |%*d |%*d |%*d\\n\", 38, \"case sensitive strings\", 3, \"-\", 8, operator_statistics[sel__Str].created, 8, operator_st"), kc_current_view );
kc_printer(kc_t("atistics[sel__Str].existing_not_found, 8, operator_statistics[sel__Str].created-operator_statistics[sel__Str].existing_not_found, 8, 0, 8, 0, 8, 0, 8, 0, 9, kc_casestring_strlen);\
\n fprintf(kc_f, "), kc_current_view );
kc_printer(kc_t("\"%-*s|%*s |%*d |%*d |%*d |%*d |%*d |%*d |%*d |%*d\\n\", 38, \"case insensitive strings\", 3, \"-\", 8, operator_statistics[sel_NoCaseStr].created, 8, operator_statistics[sel_NoCaseStr].existing_not_fo"), kc_current_view );
kc_printer(kc_t("und, 8, operator_statistics[sel_NoCaseStr].created-operator_statistics[sel_NoCaseStr].existing_not_found, 8, 0, 8, 0, 8, 0, 8, 0, 9, kc_nocasestring_strlen);\
\n for (kc_i = one_before_first_operato"), kc_current_view );
kc_printer(kc_t("r+1; kc_i < last_operator; kc_i++) {\
\n fprintf(kc_f, \"%-*s|%*d |%*d |%*d |%*d |%*d |%*d |%*d |%*d |%*d\\n\", 38, operator_info[kc_i].name, 3, operator_info[kc_i].size, 8, operator_statistics[kc_i].c"), kc_current_view );
kc_printer(kc_t("reated, 8, operator_statistics[kc_i].existing_not_found, 8, operator_statistics[kc_i].created-operator_statistics[kc_i].existing_not_found, 8, operator_statistics[kc_i].free_called[false], 8, operator_"), kc_current_view );
kc_printer(kc_t("statistics[kc_i].free_called[true], 8, operator_statistics[kc_i].freed[false]+operator_statistics[kc_i].freed[true], 8, operator_statistics[kc_i].existing_not_found-(operator_statistics[kc_i].freed[fal"), kc_current_view );
kc_printer(kc_t("se]+operator_statistics[kc_i].freed[true]), 9, operator_info[kc_i].size*(operator_statistics[kc_i].existing_not_found-(operator_statistics[kc_i].freed[false]+operator_statistics[kc_i].freed[true])));\
\n"), kc_current_view );
kc_printer(kc_t(" }\
\n}\
\n#endif // KC_STATISTICS\
\n\
\n"), kc_current_view); }
if(!g_options.no_hashtables)
{
{ kc_printer(kc_t("\
\nvoid\
\nht_static(kc_storageclass_t kc_a_storageclass_t)\
\n{\
\n hashtables[kc_a_storageclass_t]->ht_static();\
\n}\
\n\
\nvoid\
\nht_dynamic(kc_storageclass_t kc_a_storageclass_t)\
\n{\
\n "), kc_current_view );
kc_printer(kc_t("hashtables[kc_a_storageclass_t]->ht_dynamic();\
\n}\
\n\
\nvoid\
\nht_inc_level(kc_storageclass_t kc_a_storageclass_t)\
\n{\
\n hashtables[kc_a_storageclass_t]->ht_inc_level();\
\n}\
\n\
\nvoid\
\nh"), kc_current_view );
kc_printer(kc_t("t_dec_level(kc_storageclass_t kc_a_storageclass_t)\
\n{\
\n hashtables[kc_a_storageclass_t]->ht_dec_level();\
\n}\
\n\
\nvoid\
\nht_free_level(kc_storageclass_t kc_a_storageclass_t)\
\n{\
\n hash"), kc_current_view );
kc_printer(kc_t("tables[kc_a_storageclass_t]->ht_free_level();\
\n}\
\n\
\nhashtable_t\
\nht_create_simple()\
\n{\
\n hashtable_t kc_ht=new hashtable_struct_t;\
\n kc_ht->set_to_be_freed();\
\n return kc_ht;\
\n"), kc_current_view );
kc_printer(kc_t("}\
\n\
\nhashtable_t\
\nht_assign(hashtable_t kc_a_hashtable_t, kc_storageclass_t kc_a_storageclass_t, bool still_unique)\
\n{\
\n hashtable_t kc_tmp = hashtables[kc_a_storageclass_t];\
\n hashta"), kc_current_view );
kc_printer(kc_t("bles[kc_a_storageclass_t] = kc_a_hashtable_t;\
\n kc_storageclass_still_uniq[kc_a_storageclass_t] = still_unique;\
\n return kc_tmp;\
\n}\
\n\
\nhashtable_t\
\nht_assigned(kc_storageclass_t kc_a_"), kc_current_view );
kc_printer(kc_t("storageclass_t)\
\n{\
\n return hashtables[kc_a_storageclass_t];\
\n}\
\n\
\nvoid\
\nht_clear(hashtable_t kc_a_hashtable_t)\
\n{\
\n kc_a_hashtable_t->ht_clear();\
\n}\
\n\
\nvoid\
\nht_delete(ha"), kc_current_view );
kc_printer(kc_t("shtable_t kc_a_hashtable_t)\
\n{\
\n if(kc_a_hashtable_t->to_be_freed())\
\n delete kc_a_hashtable_t;\
\n}\
\n"), kc_current_view); }
}
}
break;
}
case view_gen_hashtables_h_enum: {
view_gen_hashtables_h_class& kc_current_view=static_cast<view_gen_hashtables_h_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("\
\ntypedef struct {\
\n int created;\
\n int existing_not_found;\
\n int free_called[2];\
\n int freed[2];\
\n} KC_OPERATOR_STATISTICS;\
\n\
\n#ifdef KC_STATISTICS\
\n# define print_operat"), kc_current_view );
kc_printer(kc_t("or_statistics(kc_f) do_print_operator_statistics(kc_f)\
\n void do_print_operator_statistics(FILE*);\
\n#else\
\n# define print_operator_statistics(kc_f)\
\n#endif\
\n\
\ntypedef class hashtable_struc"), kc_current_view );
kc_printer(kc_t("t_t* hashtable_t;\
\n"), kc_current_view); }
if(!g_options.no_hashtables)
{
{ kc_printer(kc_t("void ht_static (kc_storageclass_t);\
\nvoid ht_dynamic (kc_storageclass_t);\
\nvoid ht_inc_level (kc_storageclass_t);\
\nvoid ht_dec_level (kc_storageclass_t);\
\nvoid ht_free_level (kc_storageclass_t)"), kc_current_view );
kc_printer(kc_t(";\
\nhashtable_t ht_create_simple ();\
\nhashtable_t ht_assign (hashtable_t, kc_storageclass_t, bool still_unique=false);\
\nhashtable_t ht_assigned (kc_storageclass_t);\
\nvoid ht_clear (hashtable_t);"), kc_current_view );
kc_printer(kc_t("\
\nvoid ht_delete (hashtable_t);\
\n"), kc_current_view); }
}
}
break;
}
case view_gen_classdecls2_h_enum: {
view_gen_classdecls2_h_class& kc_current_view=static_cast<view_gen_classdecls2_h_class&>(kc_current_view_base);
{
const phylumdeclarations pds = this->phylumdeclarations_1;
{ kc_printer(kc_t("\
\n//namespace Phylum {\r\
\n"), kc_current_view); }
{ kc_printer(kc_t("\
\nclass "), kc_current_view); }
if(g_options.dllexports!="") {
PRINT(g_options.dllexports.c_str());
PRINT(" ");
}
{ kc_printer(kc_t("impl_abstract_phylum"), kc_current_view); }
{
baseclass_list kc_selvar_0_1 = phylum_cast<baseclass_list>(The_abstract_phylum_decl->base_classes);
if ((kc_selvar_0_1->prod_sel() == sel_Consbaseclass_list)) {
PRINT("\b :\b ");
UNPARSE(The_abstract_phylum_decl->base_classes);
} else
{
}
}
{ kc_printer(kc_t(" {\
\n\rpublic:\v\
\n virtual enum_operators prod_sel() const =0;\
\n static const enum_phyla phylum_sel_;\
\n enum_phyla phylum() const;\
\n const char* phylum_name() const;\
\n const c"), kc_current_view );
kc_printer(kc_t("har* op_name() const;\
\n virtual abstract_phylum subphylum(int) const;\
\n virtual void set_subphylum(int, abstract_phylum);\
\n void free(bool recursive=true);\
\n bool eq(c_abstract_phyl"), kc_current_view );
kc_printer(kc_t("um) const;\
\n void print();\
\n void fprint(FILE *);\
\n abstract_phylum copy(bool kc_copy_attributes) const;\n"), kc_current_view); }
if(!g_options.no_unparse)
{
{ kc_printer(kc_t(" void unparse(printer_functor pf, uview uv)\
\n \v{ do_unparse(pf, uv); }\r\
\n void unparse(printer_function opf, uview uv);\n"), kc_current_view); }
}
if(!g_options.no_printdot)
{
{ kc_printer(kc_t("\
\n void printdot_add_edge (c_abstract_phylum, int, int*, kc_dotedgenode_t*, const char*) const;\
\n void do_printdot_id (FILE*, bool, c_abstract_phylum, int) const;\
\n void do_printdot (FILE*, bool,"), kc_current_view );
kc_printer(kc_t(" int*, kc_dotedgenode_t*, const char*, bool, bool, c_abstract_phylum, int) const;\
\n\
\n virtual void fprintdot(FILE *,\
\n const char *root_label_prefix, const char *edge_label_prefix, const char *ed"), kc_current_view );
kc_printer(kc_t("ge_attributes,\
\n bool print_node_labels, bool use_context_when_sharing_leaves, bool print_prologue_and_epilogue) const =0;\
\n"), kc_current_view); }
}
if(!g_options.no_csgio)
{
{ kc_printer(kc_t(" void CSGIOwrite(FILE *) const;\
\n"), kc_current_view); }
}
if(!g_options.no_rewrite)
{
if(!g_options.rw_loop)
{
{ kc_printer(kc_t(" virtual abstract_phylum rewrite(rview v) { return do_rewrite(v); }\
\n"), kc_current_view); }
}
else
{
{ kc_printer(kc_t(" abstract_phylum rewrite(rview v) {\
\n return rewrite_loop(v); }\
\n abstract_phylum rewrite_loop(rview v);\
\n"), kc_current_view); }
}
{ kc_printer(kc_t(" virtual abstract_phylum do_rewrite(rview) { return this;}\
\n // called if a subphylum of an op is rewritten and a new op is created by default rule\
\n virtual void rewrite_members(abstract_phylum fr"), kc_current_view );
kc_printer(kc_t("om) {} \
\n"), kc_current_view); }
}
if(!f_post_create_in_phylumdecl(The_abstract_phylum_decl))
{
{ kc_printer(kc_t(" virtual void post_create(){}\
\n"), kc_current_view); }
}
fndeclarations tapam = The_abstract_phylum_decl->additional_members;
kc::unparse(tapam, kc_printer, view_gen_member_dcl_h);
kc::unparse(tapam, kc_printer, view_count_nonstaticmembers);
if(g_options.smart_pointer)
{
if(!f_constructors_in_phylumdecl(The_abstract_phylum_decl))
{
{ kc_printer(kc_t(" impl_abstract_phylum()"), kc_current_view); }
if(gl_no_of_args!=0)
{
{ kc_printer(kc_t(": "), kc_current_view); }
kc::unparse(gl_members, kc_printer, view_gen_user_assignment_inis);
}
{ kc_printer(kc_t("\v\
\n { _ref=0; }\r\
\n "), kc_current_view); }
}
if(!f_destructors_in_phylumdecl(The_abstract_phylum_decl))
{
{ kc_printer(kc_t(" virtual ~impl_abstract_phylum() {\
\n if(_ref)\
\n _ref->reset_phylum();\
\n }\
\n"), kc_current_view); }
}
{ kc_printer(kc_t(" impl_abstract_phylum(const impl_abstract_phylum&) {\
\n _ref=0;\
\n }\
\n abstract_phylum_ref* get_ref() const {\
\n return _ref;\
\n }\
\n abstract_phylum_ref* add_ref() {\
\n if(!_ref)\
\n"), kc_current_view );
kc_printer(kc_t(" _ref=new_phylum_ref();\
\n return _ref;\
\n }\
\n void set_ref(abstract_phylum_ref* r) {\
\n _ref=r;\
\n }\
\n virtual abstract_phylum_ref* new_phylum_ref()=0;\
\n abstract_phylum return_ptr("), kc_current_view );
kc_printer(kc_t(") { if(get_ref()) get_ref()->lock(); return this; }\
\n\rprivate:\v\
\n abstract_phylum_ref*_ref;\
\n"), kc_current_view); }
}
else
{
if (!f_constructors_in_phylumdecl(The_abstract_phylum_decl) && gl_no_of_args!=0)
{
{ kc_printer(kc_t("explicit impl_abstract_phylum()\v\n: "), kc_current_view); }
kc::unparse(gl_members, kc_printer, view_gen_user_assignment_inis);
{ kc_printer(kc_t(" { }\r\n"), kc_current_view); }
}
if(!f_destructors_in_phylumdecl(The_abstract_phylum_decl))
{
{ kc_printer(kc_t(" virtual ~impl_abstract_phylum() { }\
\n"), kc_current_view); }
}
}
if(!g_options.no_unparse)
{
{ kc_printer(kc_t("\rprivate:\v\
\n virtual void do_unparse(printer_functor, uview) =0;\
\n\rprotected:\v\
\n virtual void default_unparse(printer_functor, uview);\n"), kc_current_view); }
}
{ kc_printer(kc_t("};\n\n"), kc_current_view); }
if(g_options.smart_pointer)
{
{ kc_printer(kc_t("template <>\
\nclass phylum_ptr<impl_abstract_phylum> {\
\n\rpublic:\v\
\n"), kc_current_view); }
if(g_options.weak_pointer)
{
{ kc_printer(kc_t(" phylum_ptr(bool weak=false) { _ref=0; _weak=weak; }\
\n phylum_ptr(impl_abstract_phylum* t,bool weak=false) {\
\n _ref=0; _weak=weak;\
\n if(t) set_ref(t->add_ref());\
\n }\
\n phylum_ptr(c"), kc_current_view );
kc_printer(kc_t("onst phylum_ptr<impl_abstract_phylum>& p, bool weak=false) {\
\n _ref=0; _weak=weak;\
\n set_ref(p.get_ref());\
\n }\
\n"), kc_current_view); }
}
else
{
{ kc_printer(kc_t(" phylum_ptr() { _ref=0; }\
\n phylum_ptr(impl_abstract_phylum* t) {\
\n _ref=0;\
\n if(t) set_ref(t->add_ref());\
\n }\
\n phylum_ptr(const phylum_ptr<impl_abstract_phylum>& p) {\
\n _ref=0;"), kc_current_view );
kc_printer(kc_t("\
\n set_ref(p.get_ref());\
\n }\
\n"), kc_current_view); }
}
{ kc_printer(kc_t("\
\n ~phylum_ptr() { set_ref(0); }\
\n\
\n template <typename T>\
\n phylum_ptr<impl_abstract_phylum>& operator=(T* t) {\
\n if(t)\
\n set_ref(t->add_ref());\
\n else\
\n set_ref(0);\
\n"), kc_current_view );
kc_printer(kc_t(" return *this;\
\n }\
\n\
\n template <typename T>\
\n phylum_ptr<impl_abstract_phylum>& operator=(const phylum_ptr<T>& p) {\
\n set_ref(p.get_ref());\
\n return *this;\
\n }\
\n\
\n imp"), kc_current_view );
kc_printer(kc_t("l_abstract_phylum* get_phylum() const {\
\n return _ref?_ref->get_abstract_phylum():0;\
\n }\
\n\
\n operator impl_abstract_phylum*() const { return get_phylum(); }\
\n impl_abstract_phylum* o"), kc_current_view );
kc_printer(kc_t("perator()() const { return get_phylum(); }\
\n impl_abstract_phylum* operator->() const { return get_phylum(); }\
\n operator bool() const { return get_phylum()!=0; }\
\n bool operator!() cons"), kc_current_view );
kc_printer(kc_t("t { return get_phylum()==0; }\
\n\
\n abstract_phylum return_ptr() { if(_ref) _ref->lock(); return get_phylum(); }\
\n\
\n bool operator==(int null) const { return null?false:(get_phylum()==0); }"), kc_current_view );
kc_printer(kc_t("\
\n template <typename T>\
\n bool operator==(const T* t) const { return get_phylum()==t; }\
\n template <typename T>\
\n bool operator==(const phylum_ptr<T>& t) const { return get_phylum("), kc_current_view );
kc_printer(kc_t(")==t.get_phylum(); }\
\n\
\n bool operator!=(int null) const { return null?true:(get_phylum()!=0); }\
\n template <typename T>\
\n bool operator!=(const T* t) const { return get_phylum()!=t; }"), kc_current_view );
kc_printer(kc_t("\
\n template <typename T>\
\n bool operator!=(const phylum_ptr<T>& t) const { return get_phylum()!=t.get_phylum(); }\
\n\
\n abstract_phylum_ref* get_ref() const { return _ref; }\
\n\
\n\rpro"), kc_current_view );
kc_printer(kc_t("tected:\v\
\n"), kc_current_view); }
if(g_options.weak_pointer)
{
{ kc_printer(kc_t(" void set_ref(abstract_phylum_ref* r) {\
\n if(_ref!=r) {\
\n if(_weak) {\
\n if(r) r->weak_ref();\
\n if(_ref) _ref->weak_unref();\
\n }\
\n else {\
\n if(r) r->ref();\
\n if(_ref) _"), kc_current_view );
kc_printer(kc_t("ref->unref();\
\n }\
\n _ref=r;\
\n }\
\n }\
\n"), kc_current_view); }
}
else
{
{ kc_printer(kc_t(" void set_ref(abstract_phylum_ref* r) {\
\n if(_ref!=r) {\
\n if(r) r->ref();\
\n if(_ref) _ref->unref();\
\n _ref=r;\
\n }\
\n }\
\n"), kc_current_view); }
}
{ kc_printer(kc_t("\
\n\rprivate:\v\
\n abstract_phylum_ref* _ref;\
\n"), kc_current_view); }
if(g_options.weak_pointer)
{
{ kc_printer(kc_t(" bool _weak;\n"), kc_current_view); }
}
{ kc_printer(kc_t("};\n"), kc_current_view); }
}
{ kc_printer(kc_t("\
\nclass "), kc_current_view); }
if(g_options.dllexports!="") {
PRINT(g_options.dllexports.c_str());
PRINT(" ");
}
{ kc_printer(kc_t("impl_abstract_list: "), kc_current_view); }
{
baseclass_list kc_selvar_0_1 = phylum_cast<baseclass_list>(The_abstract_list_decl->base_classes);
if ((kc_selvar_0_1->prod_sel() == sel_Consbaseclass_list)) {
UNPARSE(The_abstract_list_decl->base_classes);
} else
{
PRINT("public impl_abstract_phylum");
}
}
{ kc_printer(kc_t("{\
\n\rprivate:\v\
\n void fprint_list(FILE *);\
\n friend class impl_abstract_phylum;\
\n\rprotected:\v\
\n abstract_phylum do_concat(c_abstract_phylum other, enum_operators) const;\
\n ab"), kc_current_view );
kc_printer(kc_t("stract_phylum do_reverse(c_abstract_phylum tail, enum_operators) const;\
\n abstract_phylum do_map(abstract_phylum (*kc_fp)(abstract_phylum), enum_operators);\
\n abstract_phylum do_filter(bool ("), kc_current_view );
kc_printer(kc_t("*kc_fp)(abstract_phylum), enum_operators);\
\n abstract_list do_append(abstract_phylum, abstract_list);\
\n abstract_phylum do_merge(abstract_list,abstract_phylum (*kc_fp)(abstract_phylum,abstr"), kc_current_view );
kc_printer(kc_t("act_phylum), enum_operators);\
\n abstract_phylum do_reduce(abstract_phylum neutral, abstract_phylum (*kc_fp)(abstract_phylum,abstract_phylum));\
\n\rpublic:\v\n"), kc_current_view); }
tapam = The_abstract_list_decl->additional_members;
kc::unparse(tapam, kc_printer, view_count_nonstaticmembers);
if (!f_constructors_in_phylumdecl(The_abstract_list_decl) && gl_no_of_args!=0)
{
{ kc_printer(kc_t("explicit impl_abstract_list()\v\n: "), kc_current_view); }
kc::unparse(gl_members, kc_printer, view_gen_user_assignment_inis);
{ kc_printer(kc_t(" { }\r\n"), kc_current_view); }
}
{ kc_printer(kc_t(" virtual bool is_nil() const =0;\
\n virtual abstract_list reverse() const =0;\
\n int length() const;\
\n abstract_phylum last() const;\
\n // Non-virtual, non-existing... Type must be "), kc_current_view );
kc_printer(kc_t("known exactly anyway because\
\n // of the function given as a parameter\
\n //virtual abstract_list map( abstract_phylum (*)( abstract_phylum )) =0;\
\n //virtual abstract_list filter(bool (*"), kc_current_view );
kc_printer(kc_t(")(abstract_phylum)) =0;\
\n void freelist();\
\n"), kc_current_view); }
if(g_options.smart_pointer)
{
{ kc_printer(kc_t(" impl_abstract_list* return_ptr() { if(get_ref()) get_ref()->lock(); return this; }\n"), kc_current_view); }
}
The_abstract_list_decl->additional_members->unparse(
kc_printer,view_gen_member_dcl_h);
{ kc_printer(kc_t("};\
\n"), kc_current_view); }
kc::unparse(pds, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n//} // namespace Phylum\
\n\
\n"), kc_current_view); }
}
break;
}
case view_gen_classdecls1_h_enum: {
view_gen_classdecls1_h_class& kc_current_view=static_cast<view_gen_classdecls1_h_class&>(kc_current_view_base);
{
const phylumdeclarations pds = this->phylumdeclarations_1;
{ kc_printer(kc_t("\
\nclass impl_abstract_phylum;\
\ntypedef impl_abstract_phylum * abstract_phylum;\
\ntypedef const impl_abstract_phylum * c_abstract_phylum;\
\nclass impl_abstract_list;\
\ntypedef impl_abstract_list "), kc_current_view );
kc_printer(kc_t("* abstract_list;\
\ntypedef const impl_abstract_list * c_abstract_list;\
\n"), kc_current_view); }
if(g_options.smart_pointer)
{
{ kc_printer(kc_t("\
\n// Reference to a phylum (abstract base class)\
\nclass abstract_phylum_ref {\
\n\rprotected:\v\
\n abstract_phylum_ref() {\
\n _locked=false;\
\n _ref_count=0;\
\n"), kc_current_view); }
if(g_options.weak_pointer)
{
{ kc_printer(kc_t(" _weak_ref_count=0;\
\n"), kc_current_view); }
}
{ kc_printer(kc_t(" }\
\n\
\n\rpublic:\v\
\n void lock() {\
\n _locked=true;\
\n }\
\n void unlock() {\
\n if(_locked) {\
\n _locked=false;\
\n if(_ref_count==0 "), kc_current_view); }
if(g_options.weak_pointer)
{
{ kc_printer(kc_t("&& _weak_ref_count==0"), kc_current_view); }
}
{ kc_printer(kc_t(") {\
\n reset_ref();\
\n reset_phylum();\
\n delete this;\
\n }\
\n }\
\n }\
\n int get_ref_count() const {\
\n return _ref_count;\
\n }\
\n void ref() {\
\n _locked=false;\
\n ++_re"), kc_current_view );
kc_printer(kc_t("f_count;\
\n }\
\n void unref() {\
\n if(_ref_count)\
\n --_ref_count;\
\n if(_ref_count==0 && !_locked) {\
\n clear();\
\n"), kc_current_view); }
if(g_options.weak_pointer)
{
{ kc_printer(kc_t(" if(_weak_ref_count==0)\
\n"), kc_current_view); }
}
{ kc_printer(kc_t(" delete this;\
\n }\
\n }\
\n"), kc_current_view); }
if(g_options.weak_pointer)
{
{ kc_printer(kc_t(" int get_weak_ref_count() const {\
\n return _weak_ref_count;\
\n }\
\n void weak_ref() {\
\n _locked=false;\
\n ++_weak_ref_count;\
\n }\
\n void weak_unref() {\
\n if(_weak_ref_count)\
\n"), kc_current_view );
kc_printer(kc_t(" --_weak_ref_count;\
\n if(_weak_ref_count==0 && _ref_count==0 && !_locked) {\
\n reset_ref();\
\n delete this;\
\n }\
\n }\
\n"), kc_current_view); }
}
{ kc_printer(kc_t("\
\n virtual impl_abstract_phylum* get_abstract_phylum() const=0;\
\n virtual void reset_phylum()=0;\
\n"), kc_current_view); }
The_abstract_phylum_ref_decl->additional_members->unparse(
kc_printer,view_gen_member_dcl_h);
{ kc_printer(kc_t("\rprotected:\v\
\n virtual void clear()=0;\
\n virtual void reset_ref()=0;\
\n\rprivate:\v\
\n int _ref_count;\
\n"), kc_current_view); }
if(g_options.weak_pointer)
{
{ kc_printer(kc_t(" int _weak_ref_count;\
\n"), kc_current_view); }
}
{ kc_printer(kc_t(" bool _locked;\
\n};\n"), kc_current_view); }
{ kc_printer(kc_t("// Template reference for each phylum\
\ntemplate <typename T>\
\nclass phylum_ref: public abstract_phylum_ref {\
\n\rpublic:\v\
\n phylum_ref(T* t) { _phylum=t; }\
\n\
\n T* get_phylum() const {"), kc_current_view );
kc_printer(kc_t(" return _phylum; }\
\n impl_abstract_phylum* get_abstract_phylum() const { return _phylum; }\
\n\
\n phylum_ref<T>& operator=(const T& t) {\
\n abstract_phylum_ref* ref=t.get_ref();\
\n if(ref)\
\n"), kc_current_view );
kc_printer(kc_t(" set_phylum(static_cast<T*>(t.copy(true)));\
\n else\
\n set_phylum(const_cast<T*>(&t));\
\n return *this;\
\n }\
\n phylum_ref<T>& operator=(const phylum_ref<T>& r) {\
\n T* t=r.get_phyl"), kc_current_view );
kc_printer(kc_t("um();\
\n if(t) return operator=(*t);\
\n set_phylum(0);\
\n return *this;\
\n }\
\n\
\n void reset_phylum() { _phylum=0; }\
\n void set_phylum(T* t) {\
\n if(_phylum!=t) {\
\n _phylum->se"), kc_current_view );
kc_printer(kc_t("t_ref(0);\
\n _phylum->free();\
\n _phylum=t;\
\n if(_phylum)\
\n _phylum->set_ref(this);\
\n }\
\n }\
\n\rprotected:\v\
\n void clear() { if(_phylum) { reset_ref(); _phylum->free();"), kc_current_view );
kc_printer(kc_t(" _phylum=0; } }\
\n void reset_ref() { if(_phylum) _phylum->set_ref(0); }\
\n\rprivate:\v\
\n T* _phylum;\
\n};\n"), kc_current_view); }
{ kc_printer(kc_t("// Smart pointer containing a reference\
\ntemplate <typename T>\
\nclass phylum_ptr {\
\n\rpublic:\v\
\n"), kc_current_view); }
if(g_options.weak_pointer)
{
{ kc_printer(kc_t(" phylum_ptr(bool weak=false) { _ref=0; _weak=weak; }\
\n phylum_ptr(T* t,bool weak=false) {\
\n _ref=0; _weak=weak;\
\n if(t) set_ref(static_cast<phylum_ref<T>*>(t->add_ref()));\
\n }\
\n ph"), kc_current_view );
kc_printer(kc_t("ylum_ptr(const phylum_ptr<T>& p, bool weak=false) {\
\n _ref=0; _weak=weak;\
\n set_ref(p.get_ref());\
\n }\
\n"), kc_current_view); }
}
else
{
{ kc_printer(kc_t(" phylum_ptr() { _ref=0; }\
\n phylum_ptr(T* t) {\
\n _ref=0;\
\n if(t) set_ref(static_cast<phylum_ref<T>*>(t->add_ref()));\
\n }\
\n phylum_ptr(const phylum_ptr<T>& p) {\
\n _ref=0;\
\n set_"), kc_current_view );
kc_printer(kc_t("ref(p.get_ref());\
\n }\
\n"), kc_current_view); }
}
{ kc_printer(kc_t(" ~phylum_ptr() { set_ref(0); }\
\n\
\n phylum_ptr<T>& operator=(T* t) {\
\n if(t)\
\n set_ref(static_cast<phylum_ref<T>*>(t->add_ref()));\
\n else\
\n set_ref(0);\
\n return *this;\
\n "), kc_current_view );
kc_printer(kc_t("}\
\n\
\n phylum_ptr<T>& operator=(const phylum_ptr<T>& p) {\
\n set_ref(p.get_ref());\
\n return *this;\
\n }\
\n\
\n T* get_phylum() const { return _ref?_ref->get_phylum():0; }\
\n\
\n op"), kc_current_view );
kc_printer(kc_t("erator T*() const { return get_phylum(); }\
\n T* operator()() const { return get_phylum(); }\
\n T* operator->() const { return get_phylum(); }\
\n operator bool() const { return get_phylum()"), kc_current_view );
kc_printer(kc_t("!=0; }\
\n bool operator!() const { return get_phylum()==0; }\
\n\
\n T* return_ptr() const { if(_ref) _ref->lock(); return get_phylum(); }\
\n\
\n bool operator==(int null) const { return nul"), kc_current_view );
kc_printer(kc_t("l?false:(get_phylum()==0); }\
\n bool operator==(const T* t) const { return get_phylum()==t; }\
\n bool operator==(const phylum_ptr<T>& t) const { return get_phylum()==t.get_phylum(); }\
\n bo"), kc_current_view );
kc_printer(kc_t("ol operator!=(int null) const { return null?true:(get_phylum()!=0); }\
\n bool operator!=(const T* t) const { return get_phylum()!=t; }\
\n bool operator!=(const phylum_ptr<T>& t) const { return "), kc_current_view );
kc_printer(kc_t("get_phylum()!=t.get_phylum(); }\
\n\
\n phylum_ref<T>& operator*(){ return *add_ref(); }\
\n const phylum_ref<T>& operator*() const {\
\n return *const_cast<phylum_ptr<T>*>(this)->add_ref();\
\n "), kc_current_view );
kc_printer(kc_t(" }\
\n\
\n phylum_ref<T>* get_ref() const { return _ref; }\
\n\
\n phylum_ref<T>* add_ref() {\
\n if(!_ref) set_ref(new phylum_ref<T>(0));\
\n return _ref;\
\n }\
\n\rprotected:\v\
\n"), kc_current_view); }
if(g_options.weak_pointer)
{
{ kc_printer(kc_t(" void set_ref(phylum_ref<T>* r) {\
\n if(_ref!=r) {\
\n if(_weak) {\
\n if(r) r->weak_ref();\
\n if(_ref) _ref->weak_unref();\
\n }\
\n else {\
\n if(r) r->ref();\
\n if(_ref) _ref->u"), kc_current_view );
kc_printer(kc_t("nref();\
\n }\
\n _ref=r;\
\n }\
\n }\
\n"), kc_current_view); }
}
else
{
{ kc_printer(kc_t(" void set_ref(phylum_ref<T>* r) {\
\n if(_ref!=r) {\
\n if(r) r->ref();\
\n if(_ref) _ref->unref();\
\n _ref=r;\
\n }\
\n }\
\n"), kc_current_view); }
}
{ kc_printer(kc_t("\
\n\rprivate:\v\
\n phylum_ref<T>* _ref;\
\n"), kc_current_view); }
if(g_options.weak_pointer)
{
{ kc_printer(kc_t(" bool _weak;\
\n"), kc_current_view); }
}
{ kc_printer(kc_t("};\
\ntypedef phylum_ptr<impl_abstract_phylum> abstract_phylum_ptr;\
\n"), kc_current_view); }
if(g_options.weak_pointer)
{
{ kc_printer(kc_t("\
\ntemplate <typename T>\
\nclass weak_phylum_ptr: public phylum_ptr<T> {\
\n\rpublic:\v\
\n weak_phylum_ptr(): phylum_ptr<T>(true){}\
\n weak_phylum_ptr(T* t):phylum_ptr<T>(t,true){}\
\n wea"), kc_current_view );
kc_printer(kc_t("k_phylum_ptr(const weak_phylum_ptr<T>& p):phylum_ptr<T>(p,true){}\
\n weak_phylum_ptr(const phylum_ptr<T>& p):phylum_ptr<T>(p,true){}\
\n\
\n weak_phylum_ptr<T>& operator=(T* t) {\
\n if(t)\
\n "), kc_current_view );
kc_printer(kc_t(" set_ref(static_cast<phylum_ref<T>*>(t->add_ref()));\
\n else\
\n set_ref(0);\
\n return *this;\
\n }\
\n\
\n weak_phylum_ptr<T>& operator=(const phylum_ptr<T>& p) {\
\n set_ref(p.get_ref()"), kc_current_view );
kc_printer(kc_t(");\
\n return *this;\
\n }\
\n};\
\ntypedef weak_phylum_ptr<impl_abstract_phylum> weak_abstract_phylum_ptr;\
\n"), kc_current_view); }
}
{ kc_printer(kc_t("\
\ntemplate <typename P, typename T>\
\nP phylum_cast(phylum_ptr<T>& t) {\
\n return static_cast<P>(t());\
\n}\
\ntemplate <typename P, typename T>\
\nconst P phylum_cast(const phylum_ptr<T>& t) {\
\n"), kc_current_view );
kc_printer(kc_t(" return static_cast<const P>(t());\
\n}\
\n"), kc_current_view); }
}
{ kc_printer(kc_t("\
\ntemplate <typename P, typename T>\
\nP phylum_cast(T* t) {\
\n return static_cast<P>(t);\
\n}\
\ntemplate <typename P, typename T>\
\nconst P phylum_cast(const T* t) {\
\n return static_cast<"), kc_current_view );
kc_printer(kc_t("const P>(t);\
\n}\
\n"), kc_current_view); }
kc::unparse(pds, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n\
\nvoid kc_invalid_operator( const char *kc_func_prefix, enum_phyla kc_phy, int kc_line,\
\n const char *kc_file, enum_operators kc_oper ) __attribute__ ((noreturn));\
\n\
\ntypedef enum_phyla *en"), kc_current_view );
kc_printer(kc_t("um_phyla_list;\
\n\
\n/*\
\n * make sure that the first 'real' storage class _always_ gets a value > 0\
\n * and kc_not_uniq gets a value == 0\
\n * (because then we can use it as a C boolean)\
\n */\
\n"), kc_current_view );
kc_printer(kc_t("enum kc_storageclass_t {\
\n "), kc_current_view); }
kc::unparse(Thestorageclasses, kc_printer, view_gen_operatormap_type_h);
{ kc_printer(kc_t(",\
\nlast_storageclass\
\n};\
\n\
\ntypedef struct {\
\n const char *name; // name of the phylum\
\n enum_operators first_operator; // index in operator_info[]\
\n enum_operators last_operat"), kc_current_view );
kc_printer(kc_t("or; // index in operator_info[]\
\n kc_storageclass_t uniq_stored; // storage class\
\n} KC_PHYLUM_INFO;\
\n\
\ntypedef struct {\
\n const char *name; // name of the operator\
\n size_t no_s"), kc_current_view );
kc_printer(kc_t("ons; // number of sons\
\n bool atomicity; // atomic type or not\
\n enum_phyla phylum; // index in phylum_info[]\
\n enum_phyla_list subphylum; // indexes in phylum_info[]\
\n int n"), kc_current_view );
kc_printer(kc_t("o_attrs; // number of attributes\
\n enum_phyla_list attribute; // indexes in phylum_info[]\
\n size_t size; // size of operator (for statistics)\
\n} KC_OPERATOR_INFO;\
\n\
\ntypedef enum_p"), kc_current_view );
kc_printer(kc_t("hyla_list KC_UNIQ_INFO;\
\n\
\nextern KC_OPERATOR_INFO operator_info[];\
\nextern KC_PHYLUM_INFO phylum_info[];\
\nextern KC_UNIQ_INFO kc_UniqInfo[];\
\n\
\n#define KC_OP_NAME(op) (operator_info[op].na"), kc_current_view );
kc_printer(kc_t("me)\
\n#define KC_NO_SONS(prod) (operator_info[prod].no_sons)\
\n#define KC_ATOMICITY(prod) (operator_info[prod].atomicity)\
\n\
\n"), kc_current_view); }
}
break;
}
case view_gen_unparsedefs_c_enum: {
view_gen_unparsedefs_c_class& kc_current_view=static_cast<view_gen_unparsedefs_c_class&>(kc_current_view_base);
{
const phylumdeclarations pds = this->phylumdeclarations_1;
kc::unparse(pds, kc_printer, kc_current_view);
}
break;
}
case view_gen_default_types_unpk_c_enum: {
view_gen_default_types_unpk_c_class& kc_current_view=static_cast<view_gen_default_types_unpk_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("\
\n#ifndef KC_TRACE_PROVIDED\
\n#define KC_TRACE_PROVIDED(COND,FILE,LINE,NODE) COND\
\n#endif\
\n\
\nvoid\
\nimpl_abstract_phylum::unparse(printer_function opf, uview uv)\
\n{\
\n printer_functor_f"), kc_current_view );
kc_printer(kc_t("unction_wrapper pf(opf);\
\n do_unparse(pf, uv);\
\n}\
\n\
\n// Everything given as a pointer is expected to have an unparse-method (we\
\n// believe it's a phylum), unless there's a specialisation "), kc_current_view );
kc_printer(kc_t("for it\
\n\
\nvoid\
\nunparse(abstract_phylum kc_p, printer_functor kc_printer, uview kc_current_view)\
\n{\
\n kc_p->unparse(kc_printer, kc_current_view);\
\n}\
\n\
\nvoid\
\nunparse(void *kc_p, pr"), kc_current_view );
kc_printer(kc_t("inter_functor kc_printer, uview kc_current_view)\
\n{\
\n // MPi: 20020628 there shouldn't be any left\
\n assertionFailed(\"Unparse called for untyped pointer\");\
\n // MPi: cast should be u"), kc_current_view );
kc_printer(kc_t("nnecessary, but there are still void*\
\n reinterpret_cast<impl_abstract_phylum*>(kc_p)->unparse(kc_printer, kc_current_view);\
\n}\
\n\
\nvoid\
\nunparse(int kc_v, printer_functor kc_printer, uview"), kc_current_view );
kc_printer(kc_t(" kc_current_view)\
\n{\
\n kc_char_t kc_string[200];\
\n kc_print_integer(kc_string, kc_v);\
\n kc_printer(kc_string, kc_current_view);\
\n}\
\n\
\nvoid\
\nunparse(double kc_v, printer_functor"), kc_current_view );
kc_printer(kc_t(" kc_printer, uview kc_current_view)\
\n{\
\n kc_char_t kc_string[200];\
\n kc_print_real(kc_string, kc_v);\
\n kc_printer(kc_string, kc_current_view);\
\n}\
\n\
\nvoid\
\nunparse(kc_char_t *kc"), kc_current_view );
kc_printer(kc_t("_v, printer_functor kc_printer, uview kc_current_view)\
\n{\
\n kc_printer(kc_v, kc_current_view);\
\n}\
\n\
\nvoid\
\nunparse(kc_string_t kc_v, printer_functor kc_printer, uview kc_current_view)\
\n"), kc_current_view );
kc_printer(kc_t("{\
\n kc_printer(kc_v.c_str(), kc_current_view);\
\n}\
\n"), kc_current_view); }
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
assertReason(!g_options.no_unparse, "shouldn't create unpk.cc when not even generating unparse stuff");
if (!g_options.no_unparse)
{
{ kc_printer(kc_t("void\
\nimpl_abstract_phylum::default_unparse(printer_functor kc_printer, uview kc_current_view)\
\n{\
\n register int no_sons = operator_info[prod_sel()].no_sons;\
\n for (int i=0; i < no_sons; "), kc_current_view );
kc_printer(kc_t("i++)\
\n subphylum(i)->unparse(kc_printer, kc_current_view);\
\n}\
\n\
\nvoid\
\nimpl_casestring__Str::do_unparse(printer_functor kc_printer, uview kc_current_view)\
\n{\
\n kc::unparse(name, kc_pri"), kc_current_view );
kc_printer(kc_t("nter, kc_current_view);\
\n}\
\n\
\nvoid\
\nimpl_nocasestring_NoCaseStr::do_unparse(printer_functor kc_printer, uview kc_current_view)\
\n{\
\n kc::unparse(name, kc_printer, kc_current_view);\
\n}\
\n"), kc_current_view );
kc_printer(kc_t("\
\nvoid\
\nimpl_integer__Int::do_unparse(printer_functor kc_printer, uview kc_current_view)\
\n{\
\n kc::unparse(value, kc_printer, kc_current_view);\
\n}\
\n\
\nvoid\
\nimpl_real__Real::do_unparse"), kc_current_view );
kc_printer(kc_t("(printer_functor kc_printer, uview kc_current_view)\
\n{\
\n kc::unparse(value, kc_printer, kc_current_view);\
\n}\
\n\
\nvoid\
\nimpl_voidptr__VoidPtr::do_unparse(printer_functor kc_printer, uview "), kc_current_view );
kc_printer(kc_t("kc_current_view)\
\n{\
\n kc::unparse(pointer, kc_printer, kc_current_view);\
\n}\
\n\
\n"), kc_current_view); }
}
}
break;
}
case view_gen_unpk_c_enum: {
view_gen_unpk_c_class& kc_current_view=static_cast<view_gen_unpk_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("/* translation of file(s)\n"), kc_current_view); }
kc::unparse(Thefnfiles, kc_printer, kc_current_view);
{ kc_printer(kc_t(" */\
\n/* generated by:\
\n * "), kc_current_view); }
kc::unparse(kimwitu_copyright, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n */\
\n#define KC_UNPARSE\
\n"), kc_current_view); }
if(g_options.stdafx!="") {
PRINT("#include \"");
PRINT(g_options.stdafx.c_str());
PRINT("\"\n");
}
{ kc_printer(kc_t("\
\n#include <stdio.h>\
\n#include <string>\
\n#include <stdlib.h>\
\n#include \""), kc_current_view); }
PRINT(g_options.prefix.c_str());
{ kc_printer(kc_t("k.h\"\
\n#include \""), kc_current_view); }
PRINT(g_options.prefix.c_str());
{ kc_printer(kc_t("unpk.h\"\
\n\
\n"), kc_current_view); }
kc::unparse(this, kc_printer, view_open_namespace);
kc::unparse(Theuviewnames, kc_printer, view_gen_viewvars_c);
{ kc_printer(kc_t("\
\nimpl_uviews uviews[] = {\
\n"), kc_current_view); }
kc::unparse(Theuviewnames, kc_printer, kc_current_view);
{ kc_printer(kc_t(" {0,0}\
\n};\
\n"), kc_current_view); }
if(pg_languageshavebeendefined)
{
{ kc_printer(kc_t("\n"), kc_current_view); }
{ kc_printer(kc_t("#ifndef LANG_TEXT\n"), kc_current_view); }
{ kc_printer(kc_t("#define LANG_TEXT(i) kc_language[i]\n"), kc_current_view); }
{ kc_printer(kc_t("#endif\n\n"), kc_current_view); }
}
}
break;
}
case view_gen_end_unpk_h_enum: {
view_gen_end_unpk_h_class& kc_current_view=static_cast<view_gen_end_unpk_h_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("#endif // KC_UNPARSE_HEADER\
\n"), kc_current_view); }
}
break;
}
case view_gen_rewritedecls_h_enum: {
view_gen_rewritedecls_h_class& kc_current_view=static_cast<view_gen_rewritedecls_h_class&>(kc_current_view_base);
{
const phylumdeclarations pds = this->phylumdeclarations_1;
{ kc_printer(kc_t("\
\n/* Use rviews instead\
\nextern char *kc_rview_names[];\
\n*/\
\n"), kc_current_view); }
kc::unparse(Therviewnames, kc_printer, view_rview_class_def);
}
break;
}
case view_gen_unparsedecls_h_enum: {
view_gen_unparsedecls_h_class& kc_current_view=static_cast<view_gen_unparsedecls_h_class&>(kc_current_view_base);
{
const phylumdeclarations pds = this->phylumdeclarations_1;
if(pg_languageshavebeendefined)
{
{ kc_printer(kc_t("\n"), kc_current_view); }
{ kc_printer(kc_t("#ifndef is_language\n"), kc_current_view); }
{ kc_printer(kc_t("#define is_language(L) kc_language==kc_language_##L\n"), kc_current_view); }
{ kc_printer(kc_t("#endif\n\n"), kc_current_view); }
{ kc_printer(kc_t("#ifndef set_language\n"), kc_current_view); }
{ kc_printer(kc_t("#define set_language(L) kc_language=kc_language_##L\n"), kc_current_view); }
{ kc_printer(kc_t("#endif\n\n"), kc_current_view); }
{ kc_printer(kc_t("extern char** kc_language;\n"), kc_current_view); }
kc::unparse(Thelanguages, kc_printer, kc_current_view);
}
{ kc_printer(kc_t("\
\n/* Use uviews instead\
\nextern char *kc_view_names[];\
\n*/\
\n"), kc_current_view); }
kc::unparse(Theuviewnames, kc_printer, view_uview_class_def);
{ kc_printer(kc_t("\
\nvoid unparse(abstract_phylum kc_p, printer_functor kc_printer, uview kc_current_view);\
\nvoid unparse(void *kc_p, printer_functor kc_printer, uview kc_current_view);\
\nvoid unparse(int kc_v, prin"), kc_current_view );
kc_printer(kc_t("ter_functor kc_printer, uview kc_current_view);\
\nvoid unparse(double kc_v, printer_functor kc_printer, uview kc_current_view);\
\nvoid unparse(kc_char_t *kc_v, printer_functor kc_printer, uview kc_cu"), kc_current_view );
kc_printer(kc_t("rrent_view);\
\nvoid unparse(kc_string_t kc_v, printer_functor kc_printer, uview kc_current_view);\
\n#define PRINT(string) kc_printer(string,kc_current_view)\
\n#define UNPARSE(node) node->unparse(kc_"), kc_current_view );
kc_printer(kc_t("printer,kc_current_view)\
\n"), kc_current_view); }
}
break;
}
case view_gen_unpk_h_enum: {
view_gen_unpk_h_class& kc_current_view=static_cast<view_gen_unpk_h_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("/* translation of file(s)\n"), kc_current_view); }
kc::unparse(Thefnfiles, kc_printer, kc_current_view);
{ kc_printer(kc_t(" */\
\n/* generated by:\
\n * "), kc_current_view); }
kc::unparse(kimwitu_copyright, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n */\
\n#ifndef KC_UNPARSE_HEADER\
\n#define KC_UNPARSE_HEADER\
\n\
\n"), kc_current_view); }
}
break;
}
case view_gen_fns_owninclude_c_enum: {
view_gen_fns_owninclude_c_class& kc_current_view=static_cast<view_gen_fns_owninclude_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("#include \""), kc_current_view); }
PRINT(g_options.hfilename.c_str());
{ kc_printer(kc_t("\"\
\n"), kc_current_view); }
}
break;
}
case view_gen_fns_start_c_enum: {
view_gen_fns_start_c_class& kc_current_view=static_cast<view_gen_fns_start_c_class&>(kc_current_view_base);
{
char *printablefilename = f_make_identifier_basename( g_options.ccfilename.c_str() );
{ kc_printer(kc_t("/* translation of file \""), kc_current_view); }
kc::unparse(pg_filename, kc_printer, kc_current_view);
{ kc_printer(kc_t("\" */\
\n/* generated by:\
\n * "), kc_current_view); }
kc::unparse(kimwitu_copyright, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n */\
\n#define KC_FUNCTIONS_"), kc_current_view); }
kc::unparse(printablefilename, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n"), kc_current_view); }
if(g_options.stdafx!="") {
PRINT("#include \"");
PRINT(g_options.stdafx.c_str());
PRINT("\"\n");
}
{ kc_printer(kc_t("\
\n#include <stdlib.h>\
\n#include \""), kc_current_view); }
PRINT(g_options.prefix.c_str());
{ kc_printer(kc_t("k.h\"\
\n"), kc_current_view); }
delete[] printablefilename;
}
break;
}
case view_gen_fns_end_h_enum: {
view_gen_fns_end_h_class& kc_current_view=static_cast<view_gen_fns_end_h_class&>(kc_current_view_base);
{
char *printablefilename = f_make_identifier_basename( g_options.hfilename.c_str() );
{ kc_printer(kc_t("\
\n#endif // ! KC_FUNCTIONS_"), kc_current_view); }
kc::unparse(printablefilename, kc_printer, kc_current_view);
{ kc_printer(kc_t("_HEADER\
\n\
\n"), kc_current_view); }
delete[] printablefilename;
}
break;
}
case view_gen_fns_start_h_enum: {
view_gen_fns_start_h_class& kc_current_view=static_cast<view_gen_fns_start_h_class&>(kc_current_view_base);
{
char *printablefilename = f_make_identifier_basename( g_options.hfilename.c_str() );
{ kc_printer(kc_t("/* translation of file \""), kc_current_view); }
kc::unparse(pg_filename, kc_printer, kc_current_view);
{ kc_printer(kc_t("\" */\
\n/* generated by:\
\n * "), kc_current_view); }
kc::unparse(kimwitu_copyright, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n */\
\n#ifndef KC_FUNCTIONS_"), kc_current_view); }
kc::unparse(printablefilename, kc_printer, kc_current_view);
{ kc_printer(kc_t("_HEADER\
\n#define KC_FUNCTIONS_"), kc_current_view); }
kc::unparse(printablefilename, kc_printer, kc_current_view);
{ kc_printer(kc_t("_HEADER\
\n#include \""), kc_current_view); }
PRINT(g_options.prefix.c_str());
{ kc_printer(kc_t("k.h\" // in case a user forgets\
\n\
\n"), kc_current_view); }
delete[] printablefilename;
}
break;
}
case view_gen_rewritedefs_c_enum: {
view_gen_rewritedefs_c_class& kc_current_view=static_cast<view_gen_rewritedefs_c_class&>(kc_current_view_base);
{
const phylumdeclarations pds = this->phylumdeclarations_1;
{ kc_printer(kc_t("\
\n#ifndef KC_TRACE_PROVIDED\
\n#define KC_TRACE_PROVIDED(COND,FILE,LINE,NODE) COND\
\n#endif\
\n#ifndef KC_TRACE_REWRITE_MATCH\
\n#define KC_TRACE_REWRITE_MATCH(VIEW,FILE,LINE,NODE)\
\n#endif\
\n#ifn"), kc_current_view );
kc_printer(kc_t("def KC_TRACE_REWRITE_RESULT\
\n#define KC_TRACE_REWRITE_RESULT(VIEW,FILE,LINE,NODE)\
\n#endif\
\n "), kc_current_view); }
kc::unparse(pds, kc_printer, kc_current_view);
}
break;
}
case view_gen_rewritek_c_enum: {
view_gen_rewritek_c_class& kc_current_view=static_cast<view_gen_rewritek_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("/* translation of file(s)\n"), kc_current_view); }
kc::unparse(Thefnfiles, kc_printer, kc_current_view);
{ kc_printer(kc_t(" */\
\n/* generated by:\
\n * "), kc_current_view); }
kc::unparse(kimwitu_copyright, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n */\
\n#define KC_REWRITE\
\n"), kc_current_view); }
if(g_options.stdafx!="") {
PRINT("#include \"");
PRINT(g_options.stdafx.c_str());
PRINT("\"\n");
}
{ kc_printer(kc_t("\
\n#include <stdio.h>\
\n#include <sys/types.h>\
\n#include <stdlib.h>\
\n#include \""), kc_current_view); }
PRINT(g_options.prefix.c_str());
{ kc_printer(kc_t("k.h\"\
\n#include \""), kc_current_view); }
PRINT(g_options.prefix.c_str());
{ kc_printer(kc_t("rk.h\"\
\n\
\n"), kc_current_view); }
if(g_options.rw_loop)
{
{ kc_printer(kc_t("#include <deque>\
\n#include <stack>\
\n#include <vector>\
\n"), kc_current_view); }
}
kc::unparse(this, kc_printer, view_open_namespace);
kc::unparse(Therviewnames, kc_printer, view_gen_viewvars_c);
{ kc_printer(kc_t("\
\nimpl_rviews rviews[] = {\
\n"), kc_current_view); }
kc::unparse(Therviewnames, kc_printer, kc_current_view);
{ kc_printer(kc_t(" {0,0}\
\n};\
\n"), kc_current_view); }
if(g_options.rw_loop)
{
string how_smart = "";
if(g_options.smart_pointer) how_smart="_ptr";
{ kc_printer(kc_t("\
\n\
\nstatic inline int\
\nkc_sons(abstract_phylum ph) {\
\n return KC_NO_SONS(ph->prod_sel());\
\n}\
\n\
\nstatic abstract_phylum\
\nkc_create_op(enum_operators kc_op, std::vector<abstract_phylum"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t(">& sons, size_t no_of_sons) {\
\n size_t son_offset = sons.size()-no_of_sons;\
\n switch(no_of_sons) {\n"), kc_current_view); }
kc::unparse(Theargsnumbers, kc_printer, kc_current_view);
{ kc_printer(kc_t(" default:\v\
\n assertionFailed(\"unexpected number of sub-phyla\");\r\
\n }\r\
\n}\
\n\
\nstatic void\
\ninitialize_sons_stack(abstract_phylum"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t("& kc_p, bool& skip,\
\n std::stack<abstract_phylum"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t(">& node_stack, std::stack<int>& sons_todo,\
\n rview kc_current_view_base)\
\n{\
\n // Initialize stack for depth first rewrite\
\n assertCond(kc_p);\
\n size_t no_of_sons=kc_sons(kc_p);\
\n "), kc_current_view );
kc_printer(kc_t(" while(!skip && (no_of_sons>0)) {\
\n sons_todo.push(no_of_sons);\
\n abstract_phylum parent = kc_p;\
\n for(int i = no_of_sons-1; i>=0; --i) {\
\n node_stack.push(kc_p);\
\n kc_p = parent->s"), kc_current_view );
kc_printer(kc_t("ubphylum(i);\
\n }\
\n kc_p = kc_current_view_base.pre_rewrite(kc_p, skip);\
\n assertCond(kc_p);\
\n no_of_sons = kc_sons(kc_p);\
\n }\
\n // The deepest first son is now in kc_p.\
\n // On t"), kc_current_view );
kc_printer(kc_t("he node_stack are the siblings and then the parent.\
\n}\
\n\
\nstatic bool\
\nsons_changed(abstract_phylum"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t(" current_son, const std::vector<abstract_phylum"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t(">& sons_done, size_t no_of_sons)\
\n{\
\n bool changed = false;\
\n for(int i=no_of_sons-1; i>=0; --i) {\
\n if(sons_done[sons_done.size()-no_of_sons+i] != current_son->subphylum(i)) {\
\n ch"), kc_current_view );
kc_printer(kc_t("anged=true;\
\n break;\
\n }\
\n }\
\n return changed;\
\n}\
\n\
\nabstract_phylum impl_abstract_phylum::rewrite_loop(rview kc_current_view_base) {\
\n std::stack<abstract_phylum"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t("> node_stack;\
\n std::stack<int> sons_todo;\
\n std::vector<abstract_phylum"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t("> sons_done;\
\n\
\n abstract_phylum"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t(" current_son=this;\
\n\
\n do {\
\n bool skip=false;\
\n current_son = kc_current_view_base.pre_rewrite(current_son, skip);\
\n initialize_sons_stack(current_son, skip, node_stack, sons_todo, kc_cur"), kc_current_view );
kc_printer(kc_t("rent_view_base);\
\n \
\n bool changed=true;\
\n do {\
\n assertCond(current_son);\
\n\
\n abstract_phylum"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t(" res=current_son;\
\n if(!skip)\
\n res=current_son->do_rewrite(kc_current_view_base);\
\n\
\n assertCond(res);\
\n changed=true;\
\n\
\n if(res==current_son) { // nothing has been cha"), kc_current_view );
kc_printer(kc_t("nged, current_son is completely rewritten\
\n if(!skip) { // call post_rewrite if this node is not skipped\
\n bool again=false;\
\n current_son=kc_current_view_base.post_rewrite(current_son"), kc_current_view );
kc_printer(kc_t(", again);\
\n assertCond(current_son);\
\n if(again)\
\n \vbreak;\r // starts the whole rewrite_loop for the post_rewritten node again\
\n }\
\n else\
\n skip=false;\
\n\
\n sons_do"), kc_current_view );
kc_printer(kc_t("ne.push_back(current_son); // move this son to sons_done\
\n\
\n if(!node_stack.empty()) { // else all is done\
\n assertCond(!sons_todo.empty());\
\n assertCond(sons_todo.top()>0);\
\n "), kc_current_view );
kc_printer(kc_t(" --sons_todo.top(); // one less to todo\
\n\
\n if(sons_todo.top()==0) { // all sons done\
\n sons_todo.pop(); // forget it\
\n\
\n current_son=node_stack.top(); // the parent of the original "), kc_current_view );
kc_printer(kc_t("last done sons\
\n node_stack.pop();\
\n // the last (rewritten) son of this parent is\
\n // on top of sons_done (sons_done[sons_done.size()-1])\
\n\
\n size_t no_of_sons=kc_sons(current_son);"), kc_current_view );
kc_printer(kc_t("\
\n assertCond(sons_done.size() >= no_of_sons);\
\n changed = sons_changed(current_son, sons_done, no_of_sons);\
\n if(changed) { // some sons are different ->\
\n \v\v// create a new operat"), kc_current_view );
kc_printer(kc_t("or and make it the current\
\n \r\rabstract_phylum"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t(" new_son =\
\n \vkc_create_op(current_son->prod_sel(), sons_done, no_of_sons);\r\
\n new_son->rewrite_members(current_son);\
\n current_son = new_son;\
\n // the sons do not need t"), kc_current_view );
kc_printer(kc_t("o be rewritten again\
\n changed=false;\
\n }\
\n // The current node must still be rewritten,\
\n // but not its sons anymore (changed == false).\
\n // Those sons are in the current nod"), kc_current_view );
kc_printer(kc_t("e, so no-one needs\
\n // them anymore and they are popped off the stack.\
\n sons_done.resize(sons_done.size() - no_of_sons);\
\n }\
\n else { // make the complete loop with the next son"), kc_current_view );
kc_printer(kc_t(" (changed == true)\
\n current_son = node_stack.top();\
\n node_stack.pop();\
\n }\
\n }\
\n else {\
\n current_son = 0; // terminates the loop\
\n }\
\n }\
\n else // somethin"), kc_current_view );
kc_printer(kc_t("g has been changed -> start rewrite with the changed node again\
\n current_son=res;\
\n } while(!changed);\
\n } while(current_son);\
\n\
\n assertCond(sons_todo.size()==0);\
\n assertCond(s"), kc_current_view );
kc_printer(kc_t("ons_done.size()==1);\
\n return sons_done[0]"), kc_current_view); }
if(g_options.smart_pointer)
{
{ kc_printer(kc_t(".return_ptr()"), kc_current_view); }
}
{ kc_printer(kc_t("; // done.top()\
\n}\
\n"), kc_current_view); }
}
}
break;
}
case view_gen_end_rewritek_h_enum: {
view_gen_end_rewritek_h_class& kc_current_view=static_cast<view_gen_end_rewritek_h_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("#endif // KC_REWRITE_HEADER\n"), kc_current_view); }
}
break;
}
case view_gen_rewritek_h_enum: {
view_gen_rewritek_h_class& kc_current_view=static_cast<view_gen_rewritek_h_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("/* translation of file(s)\n"), kc_current_view); }
kc::unparse(Thefnfiles, kc_printer, kc_current_view);
{ kc_printer(kc_t(" */\
\n/* generated by:\
\n * "), kc_current_view); }
kc::unparse(kimwitu_copyright, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n */\
\n#ifndef KC_REWRITE_HEADER\
\n#define KC_REWRITE_HEADER\
\n\
\n"), kc_current_view); }
}
break;
}
case view_gen_copydefs_c_enum: {
view_gen_copydefs_c_class& kc_current_view=static_cast<view_gen_copydefs_c_class&>(kc_current_view_base);
{
const phylumdeclarations pds = this->phylumdeclarations_1;
{ kc_printer(kc_t("abstract_phylum\
\nimpl_abstract_phylum::copy(bool kc_copy_attributes) const\
\n{\
\n enum_phyla kc_phy = phylum(); // XXX - implement special cases in subclasses - MvL\
\n KC_OPERATOR_INFO *kc_o"), kc_current_view );
kc_printer(kc_t("p_info = &operator_info[prod_sel()];\
\n kc_storageclass_t kc_st = phylum_info[kc_op_info->phylum].uniq_stored;\
\n if (kc_st && kc_storageclass_still_uniq[kc_st])\
\n return const_cast<abstract_"), kc_current_view );
kc_printer(kc_t("phylum>(this);\
\n abstract_phylum kc_answer=0;\
\n if (kc_phy == phylum_casestring) {\
\n kc_answer=mkcasestring((dynamic_cast<c_casestring>(this))->name);\
\n } else if (kc_phy == phylum_noc"), kc_current_view );
kc_printer(kc_t("asestring) {\
\n kc_answer=mknocasestring((dynamic_cast<c_nocasestring>(this))->name);\
\n } else if (kc_phy == phylum_voidptr) {\
\n kc_answer=mkvoidptr((dynamic_cast<c_voidptr>(this))->pointer);\
\n"), kc_current_view );
kc_printer(kc_t(" } else if (kc_phy == phylum_integer) {\
\n kc_answer=mkinteger((dynamic_cast<c_integer>(this))->value);\
\n } else if (kc_phy == phylum_real) {\
\n kc_answer=mkreal((dynamic_cast<c_real>(this))-"), kc_current_view );
kc_printer(kc_t(">value);\
\n } else {\
\n abstract_phylum kc_subtmp["), kc_current_view); }
int i = Theargsnumbers->last()->value; if (i<=0) i = 1;
kc::unparse(i, kc_printer, kc_current_view);
{ kc_printer(kc_t("], child;\
\n for (int kc_i = 0; (child = subphylum(kc_i)); kc_i++) {\
\n kc_subtmp[kc_i] = child->copy(kc_copy_attributes);\
\n }\
\n switch(kc_op_info->no_sons) {\
\n"), kc_current_view); }
kc::unparse(Theargsnumbers, kc_printer, kc_current_view);
{ kc_printer(kc_t(" default: assertionFailed(\"unexpected number of sub-phyla\");\
\n }\
\n }\
\n if (kc_copy_attributes)\
\n copy_attributes(kc_phy, this, kc_answer);\
\n return kc_answer;\
\n}\
\n\
\n"), kc_current_view); }
}
break;
}
case view_gen_copy_attributes_c_enum: {
view_gen_copy_attributes_c_class& kc_current_view=static_cast<view_gen_copy_attributes_c_class&>(kc_current_view_base);
{
const phylumdeclarations pds = this->phylumdeclarations_1;
{ kc_printer(kc_t("\
\nvoid\
\ncopy_attributes(enum_phyla copyPhy, c_abstract_phylum kc_p1, abstract_phylum kc_p2)\
\n{\
\n switch(copyPhy) {\r\
\n"), kc_current_view); }
kc::unparse(pds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" case one_before_first_phylum: // just to avoid a warning about missing case if empty\
\n default:\
\n \vbreak; // it's alright, no attributes to copy\r\
\n }\
\n enum_operators copyOp=kc_p1"), kc_current_view );
kc_printer(kc_t("->prod_sel();\
\n for (int i=operator_info[copyOp].no_attrs-1; i>=0; --i)\v\
\n attributeOf(kc_p2, i)=attributeOf(const_cast<abstract_phylum>(kc_p1), i);\r\
\n}\
\n\
\n"), kc_current_view); }
}
break;
}
case view_gen_csgio_c_enum: {
view_gen_csgio_c_class& kc_current_view=static_cast<view_gen_csgio_c_class&>(kc_current_view_base);
{
const phylumdeclarations pds = this->phylumdeclarations_1;
{ kc_printer(kc_t("\
\n\
\nnamespace { // all local to this file\
\n\r\
\n/* macro that does the string concatenation */\
\n#define kc_str_conc2(a,b) strcat(strcpy(new char[strlen(a) + strlen(b) +1], a), b)\
\n\
\n/* fun"), kc_current_view );
kc_printer(kc_t("ction that reads the integers */\
\ninline void\
\nkc_do_get_int(int &c, int c_init, int &i, FILE *f)\
\n{\
\n c = c_init;\
\n i = 0;\
\n while (isdigit(c)){\
\n i = (i*10) + (c-'0');\
\n c = "), kc_current_view );
kc_printer(kc_t("getc(f);\
\n }\
\n}\
\n\
\nchar *kc_malloc_area = 0;\
\nsize_t kc_sizeof_malloc_area = 0;\
\nint kc_node_count;\
\nint kc_node_count_base;\
\n\
\nchar*\
\nkc_grow_malloc_area(size_t kc_s)\
\n{\
\n "), kc_current_view );
kc_printer(kc_t(" delete kc_malloc_area;\
\n kc_malloc_area = new char[kc_s];\
\n kc_sizeof_malloc_area = kc_s;\
\n return kc_malloc_area;\
\n}\
\n\
\ninline char*\
\nKC_GETMALLOCAREA(size_t kc_s)\
\n{\
\n "), kc_current_view );
kc_printer(kc_t(" return kc_s > kc_sizeof_malloc_area ?\
\n kc_grow_malloc_area(kc_s) : kc_malloc_area;\
\n}\
\n\
\n/* global variables */\
\nint kc_no_external_ops;\
\nconst int KC_NOT_FOUND_OPERATOR = -1;\
\nint kc_f"), kc_current_view );
kc_printer(kc_t("ile_offset_base;\
\nint kc_file_offset;\
\n\
\n/* Magic File descriptor(s) */\
\n/* Magic descriptors of length up to KC_MAGIC_LENGTH-1 are supported. When changing\
\n * KC_MAGIC_LENGTH. change const"), kc_current_view );
kc_printer(kc_t("ant in MAGIC_READ_FORMAT to be one less than\
\n * KC_MAGIC_LENGTH. */\
\n/* Every file is assumed to start with the magic file descriptor for asc_csg_v3 */\
\n\
\nchar kc_ascii_prefix_magic_v3[] = \"A"), kc_current_view );
kc_printer(kc_t("#S#C#S#S#L#V#3\";\
\nchar kc_ascii_prefix_magic_hu[] = \"A#S#C#S#S#L#HUB\";\
\nconst int KC_MAGIC_LENGTH = 25;\
\nconst char *KC_MAGIC_READ_FORMAT = \"%24s\\n\";\
\n\
\n/* Operators with names of lengt"), kc_current_view );
kc_printer(kc_t("h upto OP_LENGTH-1 are supported. */\
\n/* When changing OP_LENGTH, change constant in OP_READ_FOMAT to be one less */\
\nconst int KC_OP_LENGTH = 256;\
\nconst char *KC_OP_READ_FORMAT = \"%255s\\n\";\
\n"), kc_current_view );
kc_printer(kc_t("\
\n//**********************\
\n// Error-string Routine\
\nconst char*\
\nkc_CSGIOerrorstring(KC_IO_STATUS kc_io_status)\
\n{\
\n switch( kc_io_status ) {\
\n case KC_CSGIOSTATUS_NO_ERR: return( \"N"), kc_current_view );
kc_printer(kc_t("o errors\" );\
\n case KC_CSGIOSTATUS_SCAN_ERR_1: return( \"Scan error(1)\" );\
\n case KC_CSGIOSTATUS_SCAN_ERR_2: return( \"Scan error(2)\" );\
\n case KC_CSGIOSTATUS_SCAN_ERR_3: return( \"Scan error("), kc_current_view );
kc_printer(kc_t("3)\" );\
\n case KC_CSGIOSTATUS_SCAN_ERR_4: return( \"Scan error(4)\" );\
\n case KC_CSGIOSTATUS_SCAN_ERR_5: return( \"Scan error(5)\" );\
\n case KC_CSGIOSTATUS_GRAM_INCONSISTENT: return( \"Grammar is"), kc_current_view );
kc_printer(kc_t(" inconsistent\" );\
\n case KC_CSGIOSTATUS_ROK: return( \"Read OK structure file\" );\
\n case KC_CSGIOSTATUS_ILLEGAL_OPTION: return( \"Illegal option in write command\" );\
\n case KC_CSGIOSTATUS_TOO_"), kc_current_view );
kc_printer(kc_t("MANY_OPERATORS: return( \"Too many operators for binary format\" );\
\n case KC_CSGIOSTATUS_WOK: return( \"Written OK\" );\
\n case KC_CSGIOSTATUS_TXT_FILE_INPUT: return( \"Read OK Text-file\" );\
\n c"), kc_current_view );
kc_printer(kc_t("ase KC_CSGIOSTATUS_SYNTAX_ERROR: return( \"Syntax error\" );\
\n case KC_CSGIOSTATUS_ILLEGAL_CONTEXT: return( \"Illegal context for operator\" );\
\n case KC_CSGIOSTATUS_PREMATURE_EOF: return( \"Premat"), kc_current_view );
kc_printer(kc_t("ure eof in file\" );\
\n case KC_CSGIOSTATUS_UNEXP_FATHER_MARK: return( \"Unexpected FATHER MARKER\" );\
\n default: return( \"Unknown error code\" );\
\n }\
\n}\
\n\
\nstruct csgio_info {\
\n int "), kc_current_view );
kc_printer(kc_t("number; // number of node, or -1 if no number\
\n bool created; // whether the node is already written\
\n csgio_info():number(-1),created(false){}\
\n};\
\ntypedef std::map<const void*,csgio"), kc_current_view );
kc_printer(kc_t("_info> csgio_map;\
\ncsgio_map kc_CSGIOhashtable;\
\n\
\n/* Maps */\
\ntypedef struct {\
\n int left;\
\n int right;\
\n} kc_OpToOpMap_tuple_t;\
\n\
\nkc_OpToOpMap_tuple_t kc_OpToOpMap[KC_NO_OF_O"), kc_current_view );
kc_printer(kc_t("PERATORS];\
\nconst int KC_NOT_USED = -1;\
\n\
\nint\
\nkc_op_search(char *kc_s)\
\n{\
\n int kc_i;\
\n for ( kc_i=0; kc_i < KC_NO_OF_OPERATORS; kc_i++ ) {\
\n if ( strcmp( kc_s, operator_info[kc"), kc_current_view );
kc_printer(kc_t("_i].name ) == 0 ) return( kc_i );\
\n }\
\n return( KC_NOT_FOUND_OPERATOR );\
\n}\
\n\
\nvoid\
\nkc_initializeOpToOpMap(int kc_v)\
\n{\
\n int kc_i;\
\n for ( kc_i=0; kc_i < KC_NO_OF_OPERAT"), kc_current_view );
kc_printer(kc_t("ORS; kc_i++ ) {\
\n kc_OpToOpMap[kc_i].left = kc_i;\
\n kc_OpToOpMap[kc_i].right = kc_v;\
\n} }\
\n\
\nbool\
\nOpToOpMap_cmp_right(kc_OpToOpMap_tuple_t t1, kc_OpToOpMap_tuple_t t2)\
\n{\
\n // sor"), kc_current_view );
kc_printer(kc_t("t in DECREASING order\
\n return t1.right > t2.right;\
\n}\
\n\
\nbool\
\nOpToOpMap_cmp_left(kc_OpToOpMap_tuple_t t1, kc_OpToOpMap_tuple_t t2)\
\n{\
\n // sort in INCREASING order\
\n return t"), kc_current_view );
kc_printer(kc_t("1.left < t2.left;\
\n}\
\n\
\nvoid\
\nkc_renumberOpToOpMap()\
\n{\
\n int kc_i, kc_j = 0;\
\n for ( kc_i=0; kc_i < KC_NO_OF_OPERATORS; kc_i++ ) {\
\n if (kc_OpToOpMap[kc_i].right > 0) {\
\n k"), kc_current_view );
kc_printer(kc_t("c_OpToOpMap[kc_i].right = kc_j++;\
\n } else {\
\n kc_OpToOpMap[kc_i].right = KC_NOT_USED;\
\n} } }\
\n\
\n\
\n#define KC_MAKE_NEW_MAPPING(ext_op,int_op) kc_OpToOpMap[ext_op].right = int_op\
\n#d"), kc_current_view );
kc_printer(kc_t("efine KC_MAKE_NEW_SCAN_MAPPING(ext_op) kc_OpToOpMap[ext_op].right++\
\n#define KC_MAP(op) (kc_OpToOpMap[op].right)\
\n#define KC_IS_MAPPED(op) (kc_OpToOpMap[op].right != KC_NOT_USED)\
\n\
\nvoid\
\nkc_"), kc_current_view );
kc_printer(kc_t("error_operator_not_in_phylum(int kc_op, int kc_phy)\
\n{\
\n const char *kc_error_message1 = \"operator not defined in phylum \";\
\n const char *kc_error_message2 = \": \";\
\n if ((kc_op <= "), kc_current_view );
kc_printer(kc_t("one_before_first_operator) || (kc_op >= last_operator)) {\
\n char kc_value[30];\
\n sprintf(kc_value, \"%d\",kc_op);\
\n kc_csgio_err_reason = kc_str_conc2(\"unknown operator number: \", kc_value);\
\n"), kc_current_view );
kc_printer(kc_t(" } else {\
\n kc_csgio_err_reason = (char*)strcat(strcat(strcat(strcpy(new char[(size_t)(strlen(kc_error_message1)+strlen(phylum_info[kc_phy].name)+strlen(kc_error_message2)+strlen(operator_info[kc_"), kc_current_view );
kc_printer(kc_t("op].name)+1)], kc_error_message1), phylum_info[kc_phy].name), kc_error_message2), operator_info[kc_op].name);\
\n }\
\n throw IO_exception(KC_CSGIOSTATUS_ILLEGAL_CONTEXT); /*NOTREACHED*/\
\n}\
\n"), kc_current_view );
kc_printer(kc_t("\
\n} // anonymous namespace\
\n\
\nchar*\
\nIO_exception2char(IO_exception kc_p)\
\n{\
\n char *kc_err_ret = 0;\
\n const char *kc_err_sep = \": \";\
\n if (kc_p.io_status != KC_CSGIOSTATUS_R"), kc_current_view );
kc_printer(kc_t("OK && kc_p.io_status != KC_CSGIOSTATUS_WOK) {\
\n const char *kc_io_err = kc_CSGIOerrorstring(kc_p.io_status);\
\n kc_err_ret = new char[strlen(kc_io_err)+strlen(kc_err_sep)+strlen(kc_p.err_reason)+1];"), kc_current_view );
kc_printer(kc_t("\
\n strcpy(kc_err_ret, kc_io_err);\
\n strcat(kc_err_ret, kc_err_sep);\
\n strcat(kc_err_ret, kc_p.err_reason);\
\n }\
\n return kc_err_ret;\
\n}\
\n\
\nconst char *kc_csgio_err_reason = \"\";\
\n"), kc_current_view );
kc_printer(kc_t("\
\n#ifndef KC_NO_CSGIO_READ\
\nnamespace { // all local to this file\
\n\r\
\n/* Base 64 numbers are written with the digits:\
\n : ; < = > ? @ A-Z [ \\ ] ^ _ ` a-y\
\n Base 10 numbers are written"), kc_current_view );
kc_printer(kc_t(" with the ordinary digits 0-9.\
\n Other characters are used in special circumstances:\
\n ! Indicates switch between reading attribute and unattributed nodes.\
\n # Indicates that the father i"), kc_current_view );
kc_printer(kc_t("s the next PROD_INSTANCE in the file.\
\n + Indicates that the following bytes are not a base 64 number\
\n * Indicates a line containing a (decimal) count of attributes.\
\n*/\
\nconst char KC_B"), kc_current_view );
kc_printer(kc_t("64_ZERO_CHAR = ':';\
\nconst char KC_ASCII_ZERO = '0';\
\nconst char KC_SWITCH_ATTR = '!';\
\nconst char KC_FATHER_MARKER = '#';\
\nconst char KC_NON_B64_CHAR = '+';\
\nconst char KC_ATTR_COUNT = '*';\
\n"), kc_current_view );
kc_printer(kc_t("const char KC_NULL_POINTER = '.';\
\n\
\ninline bool\
\nKC_IS_B64(int c)\
\n{\
\n return c>=KC_B64_ZERO_CHAR && c<KC_B64_ZERO_CHAR+64;\
\n}\
\n\
\n/* read and compute the base 64 integer in strea"), kc_current_view );
kc_printer(kc_t("m */\
\nunsigned\
\nget_rest_of_b64(FILE *kc_stream, register int kc_read_char, char kc_trailing_char)\
\n{\
\n int kc_next_char;\
\n int kc_offset;\
\n int kc_i = 0;\
\n\
\n if (!KC_IS_B64"), kc_current_view );
kc_printer(kc_t("(kc_read_char))\
\n throw IO_exception(KC_CSGIOSTATUS_SCAN_ERR_1);\
\n kc_offset = kc_read_char - KC_B64_ZERO_CHAR;\
\n\
\n kc_next_char = getc(kc_stream);\
\n while(KC_IS_B64(kc_next_char)) {"), kc_current_view );
kc_printer(kc_t("\
\n kc_offset += (kc_next_char - KC_B64_ZERO_CHAR) << (6 * (++kc_i));\
\n kc_next_char = getc(kc_stream);\
\n }\
\n\
\n if (kc_next_char == '-') {\
\n kc_offset *= -1;\
\n kc_next_char = getc(kc_st"), kc_current_view );
kc_printer(kc_t("ream);\
\n }\
\n\
\n if (kc_next_char != kc_trailing_char)\
\n throw IO_exception(KC_CSGIOSTATUS_SCAN_ERR_1);\
\n return kc_offset;\
\n}\
\n\
\n/* read shared functions */\
\ntypedef enum { KC"), kc_current_view );
kc_printer(kc_t("_NOT_READ_YET, KC_READ_EARLIER } KC_READ_STATUS;\
\n/* variable used by the sharing routines during a read */\
\n/* stores pointers to value_ptr fields */\
\nabstract_phylum *kc_offset_to_address_map;\
\n"), kc_current_view );
kc_printer(kc_t("char const* *kc_offset_to_address_map_base;\
\n\
\nvoid\
\nkc_init_read_sharing()\
\n{\
\n kc_offset_to_address_map = new abstract_phylum[kc_node_count];\
\n for(int i=0; i<kc_node_count; ++i) kc_off"), kc_current_view );
kc_printer(kc_t("set_to_address_map[i]=0;\
\n kc_file_offset = 0;\
\n kc_offset_to_address_map_base = new char const* [kc_node_count_base];\
\n for(int j=0; j<kc_node_count_base; ++j) kc_offset_to_address_map_base[j"), kc_current_view );
kc_printer(kc_t("]=0;\
\n kc_file_offset_base = 0;\
\n}\
\n\
\nKC_READ_STATUS\
\nkc_read_sharing_find(FILE *kc_stream, abstract_phylum &kc_valptr)\
\n{\
\n char kc_first_char;\
\n unsigned kc_offset;\
\n\
\n "), kc_current_view );
kc_printer(kc_t("kc_first_char = getc(kc_stream);\
\n if (KC_IS_B64(kc_first_char)) {\
\n kc_offset = get_rest_of_b64(kc_stream, kc_first_char, '\\n');\
\n int off=kc_file_offset - kc_offset;\
\n assertReason(off>=0"), kc_current_view );
kc_printer(kc_t(" && off<=kc_node_count, \"base 64 offset out of range\");\
\n kc_valptr = kc_offset_to_address_map[off];\
\n return(KC_READ_EARLIER);\
\n } else {\
\n ungetc(kc_first_char, kc_stream);\
\n return(KC"), kc_current_view );
kc_printer(kc_t("_NOT_READ_YET);\
\n }\
\n}\
\n\
\nKC_READ_STATUS\
\nkc_read_sharing_find_base(FILE *kc_stream, char const* &kc_valptr)\
\n{\
\n char kc_first_char;\
\n unsigned kc_offset;\
\n\
\n kc_first_"), kc_current_view );
kc_printer(kc_t("char = getc(kc_stream);\
\n if (KC_IS_B64(kc_first_char)) {\
\n kc_offset = get_rest_of_b64(kc_stream, kc_first_char, '\\n');\
\n int off=kc_file_offset_base - kc_offset;\
\n assertReason(off>=0 && "), kc_current_view );
kc_printer(kc_t("off<=kc_node_count_base, \"base 64 offset out of range\");\
\n kc_valptr = kc_offset_to_address_map_base[off];\
\n return(KC_READ_EARLIER);\
\n } else {\
\n return(KC_NOT_READ_YET);\
\n }\
\n}\
\n"), kc_current_view );
kc_printer(kc_t("\
\n#define kc_read_sharing_store(kc_ptr, kc_loc) \\\
\n kc_offset_to_address_map[kc_loc] = kc_ptr\
\n#define kc_read_sharing_store_base(kc_ptr) \\\
\n kc_offset_to_address_map_base[kc_file_offse"), kc_current_view );
kc_printer(kc_t("t_base++] = kc_ptr\
\n\
\n\
\nvoid\
\nkc_end_read_sharing()\
\n{\
\n delete kc_offset_to_address_map;\
\n delete kc_offset_to_address_map_base;\
\n}\
\n\
\nvoid\
\nkc_CSGIOdo_read_atom_denotation(FIL"), kc_current_view );
kc_printer(kc_t("E *kc_stream, char *kc_sbase, int kc_len)\
\n{\
\n char * kc_sptr = kc_sbase;\
\n register int kc_ch, kc_ch1;\
\n register char kc_test;\
\n register int kc_i;\
\n\
\n for (kc_i=0; kc_i<"), kc_current_view );
kc_printer(kc_t("kc_len; kc_i++, kc_sptr++) {\
\n kc_ch = getc(kc_stream);\
\n if (kc_ch == '\\n') {\
\n ungetc(kc_ch, kc_stream);\
\n break;\
\n }\
\n *kc_sptr = (char) kc_ch;\
\n if ( kc_ch == '\\\\' ) {\
\n "), kc_current_view );
kc_printer(kc_t(" if ( ( kc_test = getc( kc_stream ) ) != '\\\\' ) { /* Must be escaped hex */\
\n if (isdigit(kc_test)) kc_ch1 = kc_test - '0'; else kc_ch1 =kc_test + 10 - 'a';\
\n kc_ch1 = 16 * kc_ch1;\
\n kc_t"), kc_current_view );
kc_printer(kc_t("est = getc(kc_stream);\
\n if (isdigit(kc_test)) kc_test= kc_test - '0'; else kc_test=kc_test + 10 - 'a';\
\n kc_ch1 = kc_ch1 + kc_test;\
\n *kc_sptr = (char)kc_ch1; /* cast is for explicit narrowin"), kc_current_view );
kc_printer(kc_t("g from int to char */\
\n }\
\n }\
\n }\
\n\
\n kc_ch = getc(kc_stream);\
\n if ( kc_ch == EOF ) throw IO_exception(KC_CSGIOSTATUS_PREMATURE_EOF);\
\n else if (kc_ch != '\\n') throw IO_"), kc_current_view );
kc_printer(kc_t("exception(KC_CSGIOSTATUS_SCAN_ERR_1);\
\n\
\n *kc_sptr = '\\0';\
\n}\
\n\
\nabstract_phylum\
\nCSGIOread2dft(FILE *kc_stream, enum_phyla kc_phy)\
\n{\
\n char *kc_sbase;\
\n char const* c_kc_s"), kc_current_view );
kc_printer(kc_t("base;\
\n int kc_len;\
\n int kc_delim;\
\n abstract_phylum kc_answer;\
\n int kc_location;\
\n bool kc_not_read_yet = false;\
\n\
\n/* get operator */\
\n int kc_ext_op;\
\n int k"), kc_current_view );
kc_printer(kc_t("c_testing;\
\n\
\n /* XXX MPi: misleading comment? scan for optional unparsing version number */\
\n if (kc_read_sharing_find( kc_stream, kc_answer ) == KC_READ_EARLIER ) {\
\n // MPi: I believe "), kc_current_view );
kc_printer(kc_t("this is unnecessary or wrong - sharing is only done\
\n // when phyla are the _same_, so they should remain the same.\
\n // kc_answer = kc_answer->copy(false);\
\n return kc_answer;\
\n }\
\n"), kc_current_view );
kc_printer(kc_t(" kc_do_get_int(kc_testing,getc(kc_stream),kc_ext_op,kc_stream);\
\n if ( kc_testing == EOF )\
\n throw IO_exception(KC_CSGIOSTATUS_SCAN_ERR_1);\
\n if ( kc_testing == KC_NULL_POINTER )\
\n "), kc_current_view );
kc_printer(kc_t("{\
\n kc_do_get_int(kc_testing,getc(kc_stream),kc_ext_op,kc_stream);\
\n if ( kc_testing != '\\n' )\
\n throw IO_exception(KC_CSGIOSTATUS_SCAN_ERR_1);\
\n return 0;\
\n }\
\n if ( kc_testing "), kc_current_view );
kc_printer(kc_t("== KC_FATHER_MARKER )\
\n throw IO_exception(KC_CSGIOSTATUS_UNEXP_FATHER_MARK);\
\n if ( kc_testing != '\\n' )\
\n throw IO_exception(KC_CSGIOSTATUS_SCAN_ERR_1);\
\n enum_operators kc_op(static_c"), kc_current_view );
kc_printer(kc_t("ast<enum_operators>(KC_MAP( kc_ext_op )));\
\n/* end get operator */\
\n\
\n if (kc_op<phylum_info[kc_phy].first_operator || kc_op>phylum_info[kc_phy].last_operator)\
\n kc_error_operator_not_in"), kc_current_view );
kc_printer(kc_t("_phylum(kc_op,kc_phy);\
\n\
\n kc_location = kc_file_offset++;\
\n switch( kc_op ) {\r\
\n case sel__VoidPtr:\v\
\n // FATAL ERROR\
\n kc_do_get_int(kc_delim,getc(kc_stream),kc_len,kc_stream);"), kc_current_view );
kc_printer(kc_t("\
\n if ( kc_delim == EOF )\
\n throw IO_exception(KC_CSGIOSTATUS_SCAN_ERR_1);\
\n kc_sbase = KC_GETMALLOCAREA(kc_len + 1); // +1 for '\\0'\
\n kc_CSGIOdo_read_atom_denotation(kc_stream, kc_sbase, "), kc_current_view );
kc_printer(kc_t("kc_len);\
\n kc_answer = 0;\
\n break;\r\
\n case sel__Int:\v\
\n kc_do_get_int(kc_delim,getc(kc_stream),kc_len,kc_stream);\
\n if ( kc_delim == EOF )\
\n throw IO_exception(KC_CSGIOSTATUS_SCAN_"), kc_current_view );
kc_printer(kc_t("ERR_1);\
\n kc_sbase = KC_GETMALLOCAREA(kc_len + 1); // +1 for '\\0'\
\n kc_CSGIOdo_read_atom_denotation(kc_stream, kc_sbase, kc_len);\
\n kc_answer = mkinteger(::atoi(kc_sbase));\
\n break;\r\
\n c"), kc_current_view );
kc_printer(kc_t("ase sel__Real:\v\
\n kc_do_get_int(kc_delim,getc(kc_stream),kc_len,kc_stream);\
\n if ( kc_delim == EOF )\
\n throw IO_exception(KC_CSGIOSTATUS_SCAN_ERR_1);\
\n kc_sbase = KC_GETMALLOCAREA(kc_len +"), kc_current_view );
kc_printer(kc_t(" 1); // +1 for '\\0'\
\n kc_CSGIOdo_read_atom_denotation(kc_stream, kc_sbase, kc_len);\
\n kc_answer = mkreal(::atof(kc_sbase));\
\n break;\r\
\n case sel__Str:\v\
\n if (kc_read_sharing_find_base( "), kc_current_view );
kc_printer(kc_t("kc_stream, c_kc_sbase ) == KC_NOT_READ_YET) {\
\n kc_not_read_yet = true;\
\n kc_do_get_int(kc_delim,getc(kc_stream),kc_len,kc_stream);\
\n if ( kc_delim == EOF )\
\n throw IO_exception(KC"), kc_current_view );
kc_printer(kc_t("_CSGIOSTATUS_SCAN_ERR_1);\
\n kc_sbase = KC_GETMALLOCAREA(kc_len + 1); /* +1 for '\\0' */\
\n kc_CSGIOdo_read_atom_denotation(kc_stream, kc_sbase, kc_len);\
\n c_kc_sbase=kc_sbase;\
\n }\
\n"), kc_current_view );
kc_printer(kc_t(" kc_answer = mkcasestring( c_kc_sbase );\
\n if (kc_not_read_yet) {\
\n kc_read_sharing_store_base( phylum_cast<casestring>(kc_answer)->name );\
\n }\
\n break;\r\
\n case sel_NoCaseStr:\v\
\n i"), kc_current_view );
kc_printer(kc_t("f (kc_read_sharing_find_base( kc_stream, c_kc_sbase ) == KC_NOT_READ_YET) {\
\n kc_not_read_yet = true;\
\n kc_do_get_int(kc_delim,getc(kc_stream),kc_len,kc_stream);\
\n if ( kc_delim == EO"), kc_current_view );
kc_printer(kc_t("F )\
\n throw IO_exception(KC_CSGIOSTATUS_SCAN_ERR_1);\
\n kc_sbase = KC_GETMALLOCAREA(kc_len + 1); /* +1 for '\\0' */\
\n kc_CSGIOdo_read_atom_denotation(kc_stream, kc_sbase, kc_len);\
\n "), kc_current_view );
kc_printer(kc_t(" c_kc_sbase=kc_sbase;\
\n }\
\n kc_answer = mknocasestring( c_kc_sbase );\
\n if (kc_not_read_yet) {\
\n kc_read_sharing_store_base( phylum_cast<nocasestring>(kc_answer)->name );\
\n }\
\n break;\
\n"), kc_current_view );
kc_printer(kc_t(" default:\v\
\n abstract_phylum kc_subtmp["), kc_current_view); }
int i = Theargsnumbers->last()->value; if (i<=0) i = 1;
kc::unparse(i, kc_printer, kc_current_view);
{ kc_printer(kc_t("];\
\n for (int kc_i = 0; kc_i < operator_info[kc_op].no_sons; ++kc_i) {\
\n kc_subtmp[kc_i] = CSGIOread2dft(kc_stream, operator_info[kc_op].subphylum[kc_i] );\
\n assertReason(kc_subtmp[kc_i]!"), kc_current_view );
kc_printer(kc_t("=0, \"shared phylum is not contained in file (reference is wrong)\");\
\n }\
\n"), kc_current_view); }
{ kc_printer(kc_t(" switch(operator_info[kc_op].no_sons) {\
\n"), kc_current_view); }
kc::unparse(Theargsnumbers, kc_printer, kc_current_view);
{ kc_printer(kc_t(" default:\v\
\n assertionFailed(\"unexpected number of sub-phyla\"); break;\r\
\n }\r\
\n // Read attributes\
\n for (int kc_i=0; kc_i<operator_info[kc_op].no_attrs; ++kc_i)\v\
\n attributeOf(k"), kc_current_view );
kc_printer(kc_t("c_answer, kc_i)=\v\
\n CSGIOread2dft(kc_stream, operator_info[kc_op].attribute[kc_i]);\r\r\
\n }\
\n \
\n kc_read_sharing_store( kc_answer, kc_location );\
\n return kc_answer;\
\n}\
\n\
\n} "), kc_current_view );
kc_printer(kc_t("// anonymous namespace\
\n\
\nvoid\
\nCSGIOreadphylum(FILE *kc_stream, abstract_phylum &kc_ptr, enum_phyla kc_phy)\
\n{\
\n int kc_scan_return_code;\
\n char kc_magic_no[KC_MAGIC_LENGTH];\
\n "), kc_current_view );
kc_printer(kc_t("char kc_dollarcode[KC_OP_LENGTH];\
\n char kc_ext_name[KC_OP_LENGTH];\
\n int kc_operator;\
\n\
\n kc_csgio_err_reason = \"\";\
\n kc_scan_return_code = fscanf( kc_stream, KC_MAGIC_READ_FOR"), kc_current_view );
kc_printer(kc_t("MAT, kc_magic_no );\
\n if ( kc_scan_return_code != 1 )\
\n throw IO_exception(KC_CSGIOSTATUS_GRAM_INCONSISTENT, \"magic string not scanned\") ;\
\n if ( strcmp( kc_magic_no, kc_ascii_prefix_magi"), kc_current_view );
kc_printer(kc_t("c_v3 ) != 0 &&\
\n strcmp( kc_magic_no, kc_ascii_prefix_magic_hu ) != 0 )\
\n throw IO_exception(KC_CSGIOSTATUS_GRAM_INCONSISTENT,\"scanned magic string is not asc_ssl_v3 (or HUB specific) magic st"), kc_current_view );
kc_printer(kc_t("ring\") ;\
\n if ( fscanf( kc_stream, \"$%[^ ] \\n\", kc_dollarcode ) != 1 )\
\n throw IO_exception(KC_CSGIOSTATUS_GRAM_INCONSISTENT,\"problems finding $ before operators\") ;\
\n while ( strcmp("), kc_current_view );
kc_printer(kc_t(" kc_dollarcode, \"operators\" ) != 0 ) {\
\n if ( fscanf( kc_stream, \"%*[^$]$%[^ ] \\n\", kc_dollarcode) != 1 )\
\n throw IO_exception(KC_CSGIOSTATUS_GRAM_INCONSISTENT,\"problems finding operators"), kc_current_view );
kc_printer(kc_t(" keyword\") ;\
\n }\
\n /* read all external operator definitions and initialize map */\
\n kc_no_external_ops = 0;\
\n kc_initializeOpToOpMap(KC_NOT_FOUND_OPERATOR);\
\n while (true) {\
\n"), kc_current_view );
kc_printer(kc_t(" int kc_ext_arity, kc_ext_attr_arity, kc_ext_atomicity;\
\n\
\n if ( fscanf( kc_stream, \"%[^ ] \", kc_ext_name ) != 1 )\
\n throw IO_exception(KC_CSGIOSTATUS_SCAN_ERR_3, \"no operator name at star"), kc_current_view );
kc_printer(kc_t("t of line\") ;\
\n else if ( kc_ext_name[0] == '$' )\
\n break;\
\n else if ( fscanf( kc_stream, \"%d %d %d\\n\", &kc_ext_arity, &kc_ext_attr_arity, &kc_ext_atomicity ) != 3 )\
\n throw IO_exce"), kc_current_view );
kc_printer(kc_t("ption(KC_CSGIOSTATUS_SCAN_ERR_4, \"no arity, attr_arity or atomicity\") ;\
\n else {\
\n kc_operator = kc_op_search( kc_ext_name );\
\n if ( ( kc_operator == KC_NOT_FOUND_OPERATOR ) ||\
\n ( "), kc_current_view );
kc_printer(kc_t("KC_NO_SONS( kc_operator ) != kc_ext_arity ) ||\
\n ( KC_ATOMICITY( kc_operator) != (kc_ext_atomicity!=0) )\
\n )\
\n throw IO_exception(KC_CSGIOSTATUS_GRAM_INCONSISTENT, kc_str_conc2(\"proble"), kc_current_view );
kc_printer(kc_t("ms with operator: \",kc_ext_name)) ;\
\n else {\
\n KC_MAKE_NEW_MAPPING( kc_no_external_ops, kc_operator );\
\n kc_no_external_ops++;\
\n } } }\
\n /* ascertain that we are at the $object"), kc_current_view );
kc_printer(kc_t(" section, or get to that point */\
\n if ( strcmp( kc_ext_name, \"$object\" ) != 0 ) /* if not at $object */\
\n while ( strcmp( kc_ext_name, \"object\" ) != 0 ) {\
\n if ( fscanf( kc_stream, \""), kc_current_view );
kc_printer(kc_t("%*[^$]$%[^ ]\", kc_ext_name ) != 1 )\
\n throw IO_exception(KC_CSGIOSTATUS_GRAM_INCONSISTENT, kc_str_conc2(\"problems finding start of object section\",\"\")) ;\
\n }\
\n\
\n /* read node_count; se"), kc_current_view );
kc_printer(kc_t("t up address map */\
\n if (fscanf(kc_stream, \"%d %d\\n\", &kc_node_count, &kc_node_count_base) != 2)\
\n throw IO_exception(KC_CSGIOSTATUS_SCAN_ERR_1);\
\n kc_init_read_sharing(); /* for shared"), kc_current_view );
kc_printer(kc_t(" values */\
\n\
\n /* read the tree (actually a graph) */\
\n kc_ptr = CSGIOread2dft( kc_stream, kc_phy );\
\n kc_end_read_sharing(); /* for atomic values */\
\n}\
\n#endif // ! KC_NO_CSGIO_RE"), kc_current_view );
kc_printer(kc_t("AD\
\n\
\n#ifndef KC_NO_CSGIO_WRITE\
\nnamespace { // all local to this file\
\n\r\
\n\
\n// print a string to a file, escaping backslashes and non-printables\
\nvoid\
\nkc_print_to_file(FILE *kc_f, ch"), kc_current_view );
kc_printer(kc_t("ar const* kc_value)\
\n{\
\n unsigned char const* kc_vptr = (unsigned char const*)kc_value;\
\n int kc_len = strlen(kc_value);\
\n int kc_i;\
\n\
\n fprintf(kc_f, \"%d \", kc_len);\
\n f"), kc_current_view );
kc_printer(kc_t("or (kc_i=0; kc_i<kc_len; kc_i++, kc_vptr++) {\
\n if (*kc_vptr == '\\\\') {\
\n fprintf(kc_f, \"\\\\\\\\\");\
\n } else if (isprint(*kc_vptr)) {\
\n putc((char)*kc_vptr, kc_f);\
\n } else {\
\n"), kc_current_view );
kc_printer(kc_t(" fprintf(kc_f, \"\\\\%.2x\", *kc_vptr);\
\n }\
\n }\
\n putc('\\n', kc_f);\
\n}\
\n\
\nvoid\
\nkc_print_b64_to_file(FILE *kc_f, int kc_value)\
\n{\
\n unsigned int kc_pos_value;\
\n\
\n "), kc_current_view );
kc_printer(kc_t(" if (kc_value == 0) {\
\n putc(KC_B64_ZERO_CHAR, kc_f);\
\n } else {\
\n kc_pos_value = abs(kc_value);\
\n while (kc_pos_value != 0) {\
\n putc((kc_pos_value & ((1 << 6) - 1) ) + KC_B64_ZERO_CHA"), kc_current_view );
kc_printer(kc_t("R, kc_f);\
\n kc_pos_value >>= 6;\
\n }\
\n if (kc_value < 0) {\
\n putc('-', kc_f);\
\n }\
\n }\
\n putc('\\n', kc_f);\
\n}\
\n\
\n// realize sharing of strings in ouput file\
\nvoid\
\n"), kc_current_view );
kc_printer(kc_t("kc_CSGIOscan(c_abstract_phylum kc_p)\
\n{\
\n if (kc_p==0) return;\
\n enum_operators kc_op = kc_p->prod_sel();\
\n if (kc_CSGIOhashtable[kc_p].number == -1) {\
\n kc_CSGIOhashtable[kc_p].numb"), kc_current_view );
kc_printer(kc_t("er = kc_node_count++;\
\n KC_MAKE_NEW_SCAN_MAPPING( kc_op );\
\n switch(kc_op) {\
\n case sel__Str:\
\n case sel_NoCaseStr: {\
\n char const* s = static_cast<c_casestring>(kc_p)->name;\
\n if ("), kc_current_view );
kc_printer(kc_t("kc_CSGIOhashtable[s].number == -1)\v\
\n kc_CSGIOhashtable[s].number = kc_node_count_base++;\r\
\n break;\
\n }\
\n default: {\
\n abstract_phylum child;\
\n for (int i=0; (c"), kc_current_view );
kc_printer(kc_t("hild = kc_p->subphylum(i)); ++i)\v\
\n kc_CSGIOscan(child);\r\
\n }\
\n }\
\n for (int i=0; i<operator_info[kc_op].no_attrs; ++i)\v\
\n kc_CSGIOscan(attributeOf(const_cast<abstract_phylum>(kc_p), "), kc_current_view );
kc_printer(kc_t("i));\r\
\n }\
\n}\
\n\
\nvoid\
\nkc_CSGIOwrite2structure(FILE *kc_stream, c_abstract_phylum kc_p)\
\n{\
\n if (kc_p==0) {\
\n fprintf( kc_stream, \"%c\\n\", KC_NULL_POINTER );\
\n return;\
\n "), kc_current_view );
kc_printer(kc_t("}\
\n char _kc_value[30];\
\n char *kc_value = _kc_value;\
\n enum_operators kc_op = kc_p->prod_sel();\
\n csgio_info &kc_hn = kc_CSGIOhashtable[kc_p];\
\n if (kc_hn.created) {\
\n kc_pr"), kc_current_view );
kc_printer(kc_t("int_b64_to_file( kc_stream, kc_file_offset - kc_hn.number );\
\n } else {\
\n kc_hn.created = true;\
\n fprintf( kc_stream, \"%d\\n\", KC_MAP( kc_op ) );\
\n kc_file_offset++;\
\n switch(kc_op) {\r\
\n"), kc_current_view );
kc_printer(kc_t(" case sel__VoidPtr:\v\
\n /* FATAL ERROR */\
\n sprintf( kc_value, \"%p\", static_cast<c_voidptr>(kc_p)->pointer);\
\n kc_print_to_file( kc_stream, kc_value );\
\n kc_file_offset_base++"), kc_current_view );
kc_printer(kc_t(";\
\n break;\r\
\n case sel__Str:\
\n case sel_NoCaseStr:\v\
\n fprintf( kc_stream, \"%c\", KC_NON_B64_CHAR );\
\n kc_print_to_file( kc_stream, static_cast<c_casestring>(kc_p)->name);\
\n "), kc_current_view );
kc_printer(kc_t(" kc_file_offset_base++;\
\n break;\r\
\n case sel__Int:\v\
\n sprintf( kc_value, \"%d\", static_cast<c_integer>(kc_p)->value);\
\n kc_print_to_file( kc_stream, kc_value );\
\n kc_file"), kc_current_view );
kc_printer(kc_t("_offset_base++;\
\n break;\r\
\n case sel__Real:\v\
\n sprintf( kc_value, \"%.20f\", static_cast<c_real>(kc_p)->value);\
\n kc_print_to_file( kc_stream, kc_value );\
\n kc_file_offset_b"), kc_current_view );
kc_printer(kc_t("ase++;\
\n break;\r\
\n default:\
\n abstract_phylum child;\
\n for (int kc_i=0; (child = kc_p->subphylum(kc_i)); ++kc_i)\v\
\n kc_CSGIOwrite2structure(kc_stream, child);\r\
\n"), kc_current_view );
kc_printer(kc_t(" // Write attributes\
\n for (int kc_i=0; kc_i<operator_info[kc_op].no_attrs; ++kc_i)\v\
\n kc_CSGIOwrite2structure(kc_stream, attributeOf(const_cast<abstract_phylum>(kc_p), kc_i));\r\
\n }\
\n"), kc_current_view );
kc_printer(kc_t(" }\
\n}\
\n\
\nvoid\
\nCSGIOwrite(FILE *kc_stream, c_abstract_phylum kc_p)\
\n{\
\n int kc_i;\
\n kc_csgio_err_reason = \"\";\
\n\
\n /* write out the magic string and $operators string */\
\n"), kc_current_view );
kc_printer(kc_t(" fprintf( kc_stream, \"%s\\n$operators \\n\", kc_ascii_prefix_magic_hu );\
\n\
\n /* Initialize map from internal operators to external operators, */\
\n /* initially empty */\
\n kc_no_ext"), kc_current_view );
kc_printer(kc_t("ernal_ops = 0;\
\n kc_node_count = 0;\
\n kc_node_count_base = 0;\
\n kc_initializeOpToOpMap(0); /* initialize to 0, not any other value */\
\n\
\n // realize sharing\
\n kc_CSGIOscan(kc"), kc_current_view );
kc_printer(kc_t("_p);\
\n /* sort the optoopmap on decreasing operator usage */\
\n std::sort(&kc_OpToOpMap[0], &kc_OpToOpMap[KC_NO_OF_OPERATORS], OpToOpMap_cmp_right);\
\n kc_renumberOpToOpMap();\
\n\
\n /"), kc_current_view );
kc_printer(kc_t("* write out the _sorted_ operator table */\
\n for(kc_i = 0; kc_i < KC_NO_OF_OPERATORS; kc_i++) {\
\n if (kc_OpToOpMap[kc_i].right != KC_NOT_USED) {\
\n fprintf( kc_stream, \"%s %d %d %d\\n\", K"), kc_current_view );
kc_printer(kc_t("C_OP_NAME( kc_OpToOpMap[kc_i].left), KC_NO_SONS( kc_OpToOpMap[kc_i].left ), 0, KC_ATOMICITY( kc_OpToOpMap[kc_i].left ) );\
\n } }\
\n\
\n /* sort the optoopmap increasing on the operator number *"), kc_current_view );
kc_printer(kc_t("/\
\n std::sort(&kc_OpToOpMap[0], &kc_OpToOpMap[KC_NO_OF_OPERATORS], OpToOpMap_cmp_left);\
\n\
\n /* write out the grammar terminator string and the number of nodes */\
\n fprintf( kc_stream, "), kc_current_view );
kc_printer(kc_t("\"$object \\n%d %d\\n\", kc_node_count, kc_node_count_base );\
\n\
\n /* write out the tree */\
\n kc_file_offset = 0;\
\n kc_file_offset_base = 0;\
\n kc_CSGIOwrite2structure( kc_stream, k"), kc_current_view );
kc_printer(kc_t("c_p);\
\n kc_CSGIOhashtable.clear();\
\n}\
\n\
\n} // anonymous namespace\
\n\
\nvoid\
\nimpl_abstract_phylum::CSGIOwrite(FILE *kc_stream) const\
\n{\
\n kc::CSGIOwrite(kc_stream, this);\
\n}\
\n"), kc_current_view );
kc_printer(kc_t("\
\n#endif // ! KC_NO_CSGIO_WRITE\
\n\
\n"), kc_current_view); }
}
break;
}
case view_gen_csgio_start_c_enum: {
view_gen_csgio_start_c_class& kc_current_view=static_cast<view_gen_csgio_start_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("/* translation of file(s)\n"), kc_current_view); }
kc::unparse(Thefnfiles, kc_printer, kc_current_view);
{ kc_printer(kc_t(" */\
\n/* generated by:\
\n * "), kc_current_view); }
kc::unparse(kimwitu_copyright, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n */\
\n#define KC_CSGIO\
\n"), kc_current_view); }
if(g_options.stdafx!="") {
PRINT("#include \"");
PRINT(g_options.stdafx.c_str());
PRINT("\"\n");
}
{ kc_printer(kc_t("\
\n#include <stdio.h>\
\n#include <setjmp.h>\
\n#include <ctype.h>\
\n#include <stdlib.h>\
\n#include <map>\
\n#include <algorithm>\
\n#include \""), kc_current_view); }
PRINT(g_options.prefix.c_str());
{ kc_printer(kc_t("k.h\"\
\n#include \""), kc_current_view); }
PRINT(g_options.prefix.c_str());
{ kc_printer(kc_t("csgiok.h\"\
\n\
\n"), kc_current_view); }
}
break;
}
case view_gen_csgio_h_enum: {
view_gen_csgio_h_class& kc_current_view=static_cast<view_gen_csgio_h_class&>(kc_current_view_base);
{
const phylumdeclarations pds = this->phylumdeclarations_1;
{ kc_printer(kc_t("\
\nextern const char *kc_csgio_err_reason;\
\n\
\ntypedef enum {\
\n KC_CSGIOSTATUS_NO_ERR = 0,\
\n KC_CSGIOSTATUS_SCAN_ERR_1, KC_CSGIOSTATUS_SCAN_ERR_2, KC_CSGIOSTATUS_SCAN_ERR_3,\
\n KC_CSG"), kc_current_view );
kc_printer(kc_t("IOSTATUS_SCAN_ERR_4, KC_CSGIOSTATUS_SCAN_ERR_5, KC_CSGIOSTATUS_GRAM_INCONSISTENT,\
\n KC_CSGIOSTATUS_ROK, KC_CSGIOSTATUS_ILLEGAL_OPTION, KC_CSGIOSTATUS_TOO_MANY_OPERATORS,\
\n KC_CSGIOSTATUS_WOK,"), kc_current_view );
kc_printer(kc_t(" KC_CSGIOSTATUS_TXT_FILE_INPUT, KC_CSGIOSTATUS_SYNTAX_ERROR,\
\n KC_CSGIOSTATUS_ILLEGAL_CONTEXT, KC_CSGIOSTATUS_PREMATURE_EOF,\
\n KC_CSGIOSTATUS_UNEXP_FATHER_MARK\
\n} KC_IO_STATUS;\
\n\
\n// XX"), kc_current_view );
kc_printer(kc_t("X Needs to be extended\
\nstruct IO_exception {\
\n IO_exception(KC_IO_STATUS _io_status, const char* _err_reason=kc_csgio_err_reason, int _line=0)\
\n : io_status(_io_status), err_reason(_err_reaso"), kc_current_view );
kc_printer(kc_t("n), line(_line) { }\
\n KC_IO_STATUS io_status;\
\n const char *err_reason;\
\n int line;\
\n};\
\n\
\nchar* IO_exception2char(IO_exception);\
\n\
\n#if defined(__GNUC__) && __GNUC__<3\
\n "), kc_current_view );
kc_printer(kc_t("extern void CSGIOreadphylum(FILE*, abstract_phylum&, enum_phyla);\
\n#endif\
\n\
\ntemplate<typename P> void\
\nCSGIOread(FILE* kc_stream, P &kc_p)\
\n{\
\n abstract_phylum kc_value;\
\n#if !(define"), kc_current_view );
kc_printer(kc_t("d(__GNUC__) && __GNUC__<3)\
\n extern void CSGIOreadphylum(FILE*, abstract_phylum&, enum_phyla);\
\n#endif\
\n CSGIOreadphylum( kc_stream, kc_value, kc_p->phylum_sel_ );\
\n // Cast _could_ be"), kc_current_view );
kc_printer(kc_t(" static, but just to be completely sure\
\n if (dynamic_cast<P>(kc_value)==0)\
\n throw IO_exception(KC_CSGIOSTATUS_SCAN_ERR_5, \"Internal problem: Wrong phylum type created.\");\
\n kc_p = dynam"), kc_current_view );
kc_printer(kc_t("ic_cast<P>(kc_value);\
\n}\
\n\
\n"), kc_current_view); }
}
break;
}
case view_gen_csgio_end_h_enum: {
view_gen_csgio_end_h_class& kc_current_view=static_cast<view_gen_csgio_end_h_class&>(kc_current_view_base);
{
{ kc_printer(kc_t(" #endif // KC_CSGIO_HEADER\
\n\
\n"), kc_current_view); }
}
break;
}
case view_gen_csgio_start_h_enum: {
view_gen_csgio_start_h_class& kc_current_view=static_cast<view_gen_csgio_start_h_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("/* translation of file(s)\n"), kc_current_view); }
kc::unparse(Thefnfiles, kc_printer, kc_current_view);
{ kc_printer(kc_t(" */\
\n/* generated by:\
\n * "), kc_current_view); }
kc::unparse(kimwitu_copyright, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n */\
\n#ifndef KC_CSGIO_HEADER\
\n#define KC_CSGIO_HEADER\
\n#include \""), kc_current_view); }
PRINT(g_options.prefix.c_str());
{ kc_printer(kc_t("k.h\" // in case a user forgets\
\n\
\n"), kc_current_view); }
}
break;
}
case view_gen_listdefs_c_enum: {
view_gen_listdefs_c_class& kc_current_view=static_cast<view_gen_listdefs_c_class&>(kc_current_view_base);
{
const phylumdeclarations pds = this->phylumdeclarations_1;
kc::unparse(pds, kc_printer, kc_current_view);
}
break;
}
case view_gen_printdotdefs_c_enum: {
view_gen_printdotdefs_c_class& kc_current_view=static_cast<view_gen_printdotdefs_c_class&>(kc_current_view_base);
{
const phylumdeclarations pds = this->phylumdeclarations_1;
{ kc_printer(kc_t("\
\n#ifndef KC_PRINTDOT_LABELSIZE\
\n# define KC_PRINTDOT_LABELSIZE 1023\
\n#endif\
\n\
\nclass impl_kc_dotedgenode_t\
\n{\
\npublic:\
\n impl_kc_dotedgenode_t(c_abstract_phylum from,c_abstract_phyl"), kc_current_view );
kc_printer(kc_t("um to, int _son_nr):\
\n ptr_from(from), ptr_to(to), son_nr(_son_nr), label(0), lsize(0), next(0) { }\
\n c_abstract_phylum ptr_from;\
\n c_abstract_phylum ptr_to;\
\n int son_nr;\
\n char "), kc_current_view );
kc_printer(kc_t("*label;\
\n int lsize;\
\n kc_dotedgenode_t next;\
\n};\
\n\
\nstatic kc_dotedgenode_t\
\nkc_mkdotedgenode(struct kc_dotedge_ht*, c_abstract_phylum, c_abstract_phylum, int);\
\nstatic void kc_do_"), kc_current_view );
kc_printer(kc_t("printdot_do_add_edge (c_abstract_phylum, c_abstract_phylum, int, int*, kc_dotedgenode_t*, const char*);\
\nstatic void kc_do_printdot_subgraph_prologue (FILE*, c_abstract_phylum, const char*, const cha"), kc_current_view );
kc_printer(kc_t("r*, bool, bool);\
\nstatic void kc_do_printdot_subgraph_epilogue (FILE*);\
\nstatic void kc_do_printdot_genfields (FILE*, int, bool);\
\nstatic void kc_do_printdot_edges (FILE*, kc_dotedgenode_t, const"), kc_current_view );
kc_printer(kc_t(" char*, bool);\
\n\
\nstatic bool\
\nkc_dotedge_less(kc_dotedgenode_t p1, kc_dotedgenode_t p2)\
\n{\
\n if(p2==0)\
\n return false;\
\n if(p1==0)\
\n return true;\
\n if(p1->ptr_from<p2->ptr_f"), kc_current_view );
kc_printer(kc_t("rom)\
\n return true;\
\n if(p1->ptr_from>p2->ptr_from)\
\n return false;\
\n if(p1->ptr_to<p2->ptr_to)\
\n return true;\
\n if(p1->ptr_to>p2->ptr_to)\
\n return false;\
\n if(p1->son_nr<p2"), kc_current_view );
kc_printer(kc_t("->son_nr)\
\n return true;\
\n // OPERATORHASH((unsigned) kc_phy_from);\
\n // OPERATORHASH((unsigned) kc_phy_to);\
\n return false;\
\n}\
\n\
\ntemplate<typename T>\
\nstruct dotedge_less : s"), kc_current_view );
kc_printer(kc_t("td::binary_function<T, T, bool> {\
\n bool operator()(const T& X, const T& Y) const { return kc_dotedge_less(X,Y); }\
\n};\
\n\
\nstruct kc_dotedge_ht: public std::set<kc_dotedgenode_t, dotedge_less"), kc_current_view );
kc_printer(kc_t("<kc_dotedgenode_t> > {\
\n ~kc_dotedge_ht() {\
\n for(iterator i=begin();i!=end();++i)\
\n delete const_cast<kc_dotedgenode_t>(*i);\
\n clear();\
\n }\
\n kc_dotedgenode_t check_insert(kc_dotedg"), kc_current_view );
kc_printer(kc_t("enode_t t) {\
\n std::pair<iterator,bool> res=insert(t);\
\n return *res.first;\
\n }\
\n};\
\n\
\nstatic kc_dotedge_ht* fprintdot_hashtable;\
\n"), kc_current_view); }
kc::unparse(pds, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n\
\nkc_dotedgenode_t\
\nkc_mkdotedgenode(kc_dotedge_ht* kc_a_ht, c_abstract_phylum kc_s_from, c_abstract_phylum kc_s_to, int kc_son_nr)\
\n{\
\n kc_dotedgenode_t kc_x = new impl_kc_dotedgenode_t"), kc_current_view );
kc_printer(kc_t("(kc_s_from,kc_s_to,kc_son_nr);\
\n kc_dotedgenode_t unique_kc_x=kc_a_ht->check_insert(kc_x);\
\n if(unique_kc_x!=kc_x) {\
\n delete kc_x;\
\n kc_x=unique_kc_x;\
\n }\
\n return kc_x;\
\n}\
\n\
\n"), kc_current_view );
kc_printer(kc_t("void kc_do_printdot_subgraph_prologue(FILE *kc_f, c_abstract_phylum kc_p, const char *root_label_prefix, const char *edge_attributes, bool print_node_labels, bool use_context_when_sharing_leaves)\
\n{\
\n"), kc_current_view );
kc_printer(kc_t(" if (!kc_f) kc_f = stdout;\
\n fprintf(kc_f, \"/*subgraph*/ {\\n\");\
\n if (root_label_prefix) {\
\n fprintf(kc_f, \"\\\"%s\\\" [shape=ellipse\", root_label_prefix);\
\n if (edge_attributes &"), kc_current_view );
kc_printer(kc_t("& (strlen(edge_attributes) > 0)) {\
\n fprintf(kc_f, \", %s\", edge_attributes);\
\n }\
\n if (print_node_labels) {\
\n fprintf(kc_f, \", label=\\\"%s\\\\n%s\\\"\", root_label_prefix, phylum_in"), kc_current_view );
kc_printer(kc_t("fo[kc_p->phylum()].name);\
\n }\
\n fprintf(kc_f, \"];\\n\");\
\n fprintf(kc_f, \"\\\"%s\\\" ->\", root_label_prefix);\
\n kc_p->do_printdot_id(kc_f, use_context_when_sharing_leaves, 0, 0);\
\n if (edg"), kc_current_view );
kc_printer(kc_t("e_attributes && (strlen(edge_attributes) > 0)) {\
\n fprintf(kc_f, \"[%s]\", edge_attributes);\
\n }\
\n fprintf(kc_f, \";\\n\");\
\n }\
\n}\
\n\
\nvoid kc_do_printdot_subgraph_epilogue(FILE *kc"), kc_current_view );
kc_printer(kc_t("_f)\
\n{\
\n if (!kc_f) kc_f = stdout;\
\n fprintf(kc_f, \"}\\n\");\
\n}\
\n\
\nvoid fprintdotprologue(FILE *kc_f)\
\n{\
\n if (!kc_f) kc_f = stdout;\
\n fprintf(kc_f, \"digraph kc_output{\\n"), kc_current_view );
kc_printer(kc_t("\");\
\n fprintf(kc_f, \"node [shape=record, height=.1, fontname=Helvetica];\\n\");\
\n}\
\n\
\nvoid fprintdotepilogue(FILE *kc_f)\
\n{\
\n if (!kc_f) kc_f = stdout;\
\n fprintf(kc_f, \"}\\n\""), kc_current_view );
kc_printer(kc_t(");\
\n}\
\n\
\nvoid kc_do_printdot_genfields(FILE *kc_f, int kc_prodsel, bool print_node_labels)\
\n{\
\n int kc_i = 1;\
\n KC_OPERATOR_INFO *kc_op_info = &operator_info[kc_prodsel];\
\n if (kc_op_i"), kc_current_view );
kc_printer(kc_t("nfo->no_sons <= 0) return;\
\n if (!kc_f) kc_f = stdout;\
\n while(kc_i < kc_op_info->no_sons) {\
\n fprintf(kc_f, \"<f%d>\", kc_i);\
\n if (print_node_labels) {\
\n fprintf(kc_f, \"%s\", "), kc_current_view );
kc_printer(kc_t("phylum_info[kc_op_info->subphylum[kc_i-1]].name);\
\n }\
\n fprintf(kc_f, \"|\");\
\n kc_i++;\
\n }\
\n fprintf(kc_f, \"<f%d>\", kc_i);\
\n if (print_node_labels) {\
\n fprintf(kc_f, \"%"), kc_current_view );
kc_printer(kc_t("s\", phylum_info[kc_op_info->subphylum[kc_i-1]].name);\
\n }\
\n}\
\n\
\nvoid impl_abstract_phylum::do_printdot_id(FILE *kc_f, bool use_context_when_sharing_leaves, c_abstract_phylum kc_ctxt, int kc_s"), kc_current_view );
kc_printer(kc_t("on_nr) const\
\n{\
\n // The casts only make unique ids, so reinterpret_cast is alright\
\n if (!kc_f) kc_f = stdout;\
\n enum_phyla kc_phy = phylum();\
\n if (kc_phy == phylum_voidptr) {\
\n"), kc_current_view );
kc_printer(kc_t(" fprintf(kc_f, \"kcidp%x\", reinterpret_cast<int>(this));\
\n if (use_context_when_sharing_leaves) {\
\n fprintf(kc_f, \"_%x_%d\", reinterpret_cast<int>(kc_ctxt), kc_son_nr);\
\n }\
\n } else if"), kc_current_view );
kc_printer(kc_t(" ((kc_phy == phylum_casestring) || (kc_phy == phylum_nocasestring)) {\
\n fprintf(kc_f, \"kcids%x\", reinterpret_cast<int>(this));\
\n if (use_context_when_sharing_leaves) {\
\n fprintf(kc_f, \"_%x"), kc_current_view );
kc_printer(kc_t("_%d\", reinterpret_cast<int>(kc_ctxt), kc_son_nr);\
\n }\
\n } else if (kc_phy == phylum_integer) {\
\n fprintf(kc_f, \"kcidi%x\", reinterpret_cast<int>(this));\
\n if (use_context_when_sharing_leav"), kc_current_view );
kc_printer(kc_t("es) {\
\n fprintf(kc_f, \"_%x_%d\", reinterpret_cast<int>(kc_ctxt), kc_son_nr);\
\n }\
\n } else if (kc_phy == phylum_real) {\
\n fprintf(kc_f, \"kcidf%x\", reinterpret_cast<int>(this));\
\n if "), kc_current_view );
kc_printer(kc_t("(use_context_when_sharing_leaves) {\
\n fprintf(kc_f, \"_%x_%d\", reinterpret_cast<int>(kc_ctxt), kc_son_nr);\
\n }\
\n } else {\
\n fprintf(kc_f, \"kcidx%x\", reinterpret_cast<int>(this));\
\n}"), kc_current_view );
kc_printer(kc_t(" }\
\n\
\nvoid kc_do_printdot_do_add_edge(c_abstract_phylum kc_p, c_abstract_phylum kc_sub_p, int kc_son_nr, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, const char *edge_label_prefix)\
\n{\
\n kc"), kc_current_view );
kc_printer(kc_t("_dotedgenode_t kc_hn;\
\n char kc_buf[30];\
\n kc_hn = kc_mkdotedgenode(fprintdot_hashtable, kc_p, kc_sub_p, kc_son_nr);\
\n if (! kc_hn->label) {\
\n kc_hn->label = new char[(size_t)(KC_PRIN"), kc_current_view );
kc_printer(kc_t("TDOT_LABELSIZE+1)];\
\n kc_hn->lsize = KC_PRINTDOT_LABELSIZE;\
\n strcpy(kc_hn->label, \"\");\
\n kc_hn->next = *kc_edges;\
\n *kc_edges = kc_hn;\
\n } else {\
\n char kc_buf2[30];\
\n sprintf(kc_bu"), kc_current_view );
kc_printer(kc_t("f2, \", \");\
\n strncat(kc_hn->label, kc_buf2, kc_hn->lsize - strlen(kc_hn->label));\
\n }\
\n if (edge_label_prefix) {\
\n strncat(kc_hn->label, edge_label_prefix, kc_hn->lsize - strlen(kc_hn->"), kc_current_view );
kc_printer(kc_t("label));\
\n }\
\n sprintf(kc_buf, \"%d\", *kc_edge_nr);\
\n strncat(kc_hn->label, kc_buf, kc_hn->lsize - strlen(kc_hn->label));\
\n (*kc_edge_nr)++;\
\n}\
\n\
\nvoid impl_abstract_phylum::"), kc_current_view );
kc_printer(kc_t("printdot_add_edge(c_abstract_phylum kc_sub_p, int kc_son_nr, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, const char *edge_label_prefix) const\
\n{\
\n kc_do_printdot_do_add_edge(this, kc_sub_p, kc_so"), kc_current_view );
kc_printer(kc_t("n_nr, kc_edge_nr, kc_edges, edge_label_prefix);\
\n}\
\n\
\nvoid kc_do_printdot_edges(FILE *kc_f, kc_dotedgenode_t kc_edges, const char *edge_attributes, bool use_context_when_sharing_leaves)\
\n{\
\n "), kc_current_view );
kc_printer(kc_t(" kc_dotedgenode_t kc_p = kc_edges;\
\n if (!kc_f) kc_f = stdout;\
\n while(kc_p) {\
\n kc_p->ptr_from->do_printdot_id(kc_f, use_context_when_sharing_leaves, 0, 0);\
\n fprintf(kc_f, \":f%d -> \""), kc_current_view );
kc_printer(kc_t(", kc_p->son_nr);\
\n kc_p->ptr_to->do_printdot_id(kc_f, use_context_when_sharing_leaves, kc_p->ptr_from, kc_p->son_nr);\
\n fprintf(kc_f, \" [label=\\\"%s\\\"\", kc_p->label);\
\n if (edge_attributes &"), kc_current_view );
kc_printer(kc_t("& (strlen(edge_attributes) > 0)) {\
\n fprintf(kc_f, \", %s\", edge_attributes);\
\n }\
\n fprintf(kc_f, \"];\\n\");\
\n kc_p = kc_p->next;\
\n} }\
\n\
\nvoid impl_abstract_phylum::do_printdot(FI"), kc_current_view );
kc_printer(kc_t("LE *kc_f, bool kc_outmost, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, const char *edge_label_prefix, bool print_node_labels, bool use_context_when_sharing_leaves, c_abstract_phylum kc_ctxt, int kc_so"), kc_current_view );
kc_printer(kc_t("n_nr) const\
\n{\
\n int kc_i;\
\n\
\n if (!kc_f) kc_f = stdout;\
\n switch(phylum()) {\
\n case phylum_voidptr:\
\n do_printdot_id(kc_f, use_context_when_sharing_leaves, kc_ctxt, kc_son_n"), kc_current_view );
kc_printer(kc_t("r);\
\n fprintf(kc_f, \" [label=\\\"%p\\\", shape=ellipse];\\n\", dynamic_cast<c_voidptr>(this)->pointer);\
\n break;\
\n case phylum_casestring:\
\n case phylum_nocasestring:\
\n do_printd"), kc_current_view );
kc_printer(kc_t("ot_id(kc_f, use_context_when_sharing_leaves, kc_ctxt, kc_son_nr);\
\n#ifdef KC_UNICODE\
\n fprintf(kc_f, \" [label=\\\"%s\\\", shape=ellipse];\\n\", kc_to_cstring(static_cast<c_casestring>(this)->n"), kc_current_view );
kc_printer(kc_t("ame).c_str());\
\n#else\
\n fprintf(kc_f, \" [label=\\\"%s\\\", shape=ellipse];\\n\", static_cast<c_casestring>(this)->name);\
\n#endif\
\n break;\
\n case phylum_integer:\
\n do_printdot_i"), kc_current_view );
kc_printer(kc_t("d(kc_f, use_context_when_sharing_leaves, kc_ctxt, kc_son_nr);\
\n fprintf(kc_f, \" [label=\\\"%i\\\", shape=ellipse];\\n\", ((integer)this)->value);\
\n break;\
\n case phylum_real:\
\n do_"), kc_current_view );
kc_printer(kc_t("printdot_id(kc_f, use_context_when_sharing_leaves, kc_ctxt, kc_son_nr);\
\n fprintf(kc_f, \" [label=\\\"%f\\\", shape=ellipse];\\n\", ((real)this)->value);\
\n break;\
\n default:\
\n if (!"), kc_current_view );
kc_printer(kc_t("subphylum(0)) {\
\n do_printdot_id(kc_f, use_context_when_sharing_leaves, kc_ctxt, kc_son_nr);\
\n fprintf(kc_f, \" [label=\\\"<f0>%s\\\"];\\n\", op_name());\
\n } else {\
\n do_printdot_id(kc_f"), kc_current_view );
kc_printer(kc_t(", use_context_when_sharing_leaves, kc_ctxt, kc_son_nr);\
\n fprintf(kc_f, \" [label=\\\"{<f0>%s|{\", op_name());\
\n kc_do_printdot_genfields(kc_f, prod_sel(), print_node_labels);\
\n fprintf(kc_f,"), kc_current_view );
kc_printer(kc_t(" \"}}\\\"];\\n\");\
\n abstract_phylum child;\
\n for (kc_i=0; (child = subphylum(kc_i)); kc_i++) {\
\n printdot_add_edge(child, kc_i+1, kc_edge_nr, kc_edges, edge_label_prefix );\
\n"), kc_current_view );
kc_printer(kc_t(" child->do_printdot( kc_f, false, kc_edge_nr, kc_edges, edge_label_prefix, print_node_labels, use_context_when_sharing_leaves, this, kc_i+1 );\
\n }\
\n }\
\n }\
\n}\
\n"), kc_current_view); }
}
break;
}
case view_gen_printdotdecls_h_enum: {
view_gen_printdotdecls_h_class& kc_current_view=static_cast<view_gen_printdotdecls_h_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("\
\nvoid fprintdotprologue ( FILE* );\
\nvoid fprintdotepilogue ( FILE* );\
\n"), kc_current_view); }
}
break;
}
case view_gen_error_defs_c_enum: {
view_gen_error_defs_c_class& kc_current_view=static_cast<view_gen_error_defs_c_class&>(kc_current_view_base);
{
const char *strof_phylum_error="Internal Error: unknown phylum number: ";
int strlen_strof_phylum_error = static_cast<int>(strlen(strof_phylum_error)+30);
casestring cstrof_phylum_error = mkcasestring(strof_phylum_error);
const char *strof_operator_error="Internal Error: unknown operator number: ";
int strlen_strof_operator_error = static_cast<int>(strlen(strof_operator_error)+30);
casestring cstrof_operator_error = mkcasestring(strof_operator_error);
{ kc_printer(kc_t("const char*\
\nphylumname_or_error(enum_phyla kc_phy)\
\n{\
\n if ((kc_phy <= one_before_first_phylum) || (kc_phy >= last_phylum)) {\
\n char *kc_strof_error;\
\n sprintf((kc_strof_error=new char["), kc_current_view); }
kc::unparse(strlen_strof_phylum_error, kc_printer, kc_current_view);
{ kc_printer(kc_t("]), \""), kc_current_view); }
kc::unparse(cstrof_phylum_error, kc_printer, kc_current_view);
{ kc_printer(kc_t("%d\", kc_phy);\
\n return kc_strof_error;\
\n } else {\
\n return phylum_info[kc_phy].name;\
\n} }\
\n\
\n\
\nconst char*\
\nkc_operatorname_or_error(enum_operators kc_operator)\
\n{\
\n if ((k"), kc_current_view );
kc_printer(kc_t("c_operator <= one_before_first_operator) || (kc_operator >= last_operator)) {\
\n char *kc_strof_error;\
\n sprintf((kc_strof_error=new char["), kc_current_view); }
kc::unparse(strlen_strof_operator_error, kc_printer, kc_current_view);
{ kc_printer(kc_t("]), \""), kc_current_view); }
kc::unparse(cstrof_operator_error, kc_printer, kc_current_view);
{ kc_printer(kc_t("%d\", kc_operator);\
\n return kc_strof_error;\
\n } else {\
\n return operator_info[kc_operator].name;\
\n} }\
\n\
\n"), kc_current_view); }
}
break;
}
case view_gen_error_decls_h_enum: {
view_gen_error_decls_h_class& kc_current_view=static_cast<view_gen_error_decls_h_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("const char *phylumname_or_error ( enum_phyla );\
\nconst char *kc_operatorname_or_error ( enum_operators );\
\n\
\n"), kc_current_view); }
}
break;
}
case view_gen_access_functions_enum: {
view_gen_access_functions_class& kc_current_view=static_cast<view_gen_access_functions_class&>(kc_current_view_base);
{
const phylumdeclarations d = this->phylumdeclarations_1;
{ kc_printer(kc_t("\
\nabstract_phylum\
\nkc_create(enum_operators createOp"), kc_current_view); }
int j=Theargsnumbers->last()->value;
if (j<2) j=2;
for (int i = 1; i<=j; ++i)
{
{ kc_printer(kc_t(", abstract_phylum"), kc_current_view); }
{ kc_printer(kc_t(" kc_p"), kc_current_view); }
kc::unparse(i, kc_printer, kc_current_view);
}
{ kc_printer(kc_t(")\
\n{\
\n switch(createOp) {\r\
\n case sel__VoidPtr:\
\n case sel__Int:\
\n case sel__Real:\
\n case sel__Str:\
\n case sel_NoCaseStr:\v\
\n assertionFailed(\"Cannot create this kin"), kc_current_view );
kc_printer(kc_t("d of phylum - predefined phyla must be handled seperately\");break;\
\n"), kc_current_view); }
kc::unparse(d, kc_printer, view_gen_create_function);
{ kc_printer(kc_t(" \rdefault:\v\
\n assertionFailed(\"Cannot create this kind of phylum - unkown operator id\");\
\n }\
\n NORETURN\
\n}\
\n\
\nabstract_phylum&\
\nattributeOf(abstract_phylum kc_p, int no)\
\n{\
\n"), kc_current_view); }
count_printer counter;
d->unparse(counter, view_gen_attributeOf_function);
if (counter()==0)
{
{ kc_printer(kc_t("assertionFailed(\"Cannot select attribute for this kind of phylum - has no attributes\");\
\n"), kc_current_view); }
}
else
{
{ kc_printer(kc_t(" enum_operators kc_op = kc_p->prod_sel();\
\n switch (kc_op) {\r\
\n"), kc_current_view); }
kc::unparse(d, kc_printer, view_gen_attributeOf_function);
{ kc_printer(kc_t(" default:\v\
\n assertionFailed(\"Cannot select attribute for this kind of phylum - unkown operator id or no attributes\");\
\n }\
\n assertionFailed(\"Cannot select attribute for this kind of"), kc_current_view );
kc_printer(kc_t(" phylum - attribute number out of range\");\
\n"), kc_current_view); }
}
{ kc_printer(kc_t(" NORETURN\
\n}\
\n"), kc_current_view); }
}
break;
}
case view_gen_operatordefs_c_enum: {
view_gen_operatordefs_c_class& kc_current_view=static_cast<view_gen_operatordefs_c_class&>(kc_current_view_base);
{
const phylumdeclarations d = this->phylumdeclarations_1;
kc::unparse(Thestorageclasses, kc_printer, view_gen_operatordefs_c_0);
{ kc_printer(kc_t("\
\nbool kc_storageclass_still_uniq[] = {\
\n"), kc_current_view); }
kc::unparse(Thestorageclasses, kc_printer, view_gen_operatordefs_c_1);
{ kc_printer(kc_t(" };\
\n\
\nhashtable_t hashtables[] = {\
\n"), kc_current_view); }
kc::unparse(Thestorageclasses, kc_printer, view_gen_operatordefs_c_2);
{ kc_printer(kc_t("};\
\n\
\nconst char* kc_storageclassnames[] = { "), kc_current_view); }
kc::unparse(Thestorageclasses, kc_printer, kc_current_view);
{ kc_printer(kc_t(" };\
\n\
\nnamespace { // all local to k.cc\
\n\r\
\n"), kc_current_view); }
kc::unparse(d, kc_printer, view_gen_initializephyla_c);
{ kc_printer(kc_t("\
\n} // namespace\
\n\
\nenum_phyla\
\nimpl_abstract_phylum::phylum() const {\
\n return operator_info[prod_sel()].phylum;\
\n}\
\n\
\nconst char*\
\nimpl_abstract_phylum::phylum_name() const {\
\n re"), kc_current_view );
kc_printer(kc_t("turn phylum_info[phylum()].name;\
\n}\
\n\
\nconst char*\
\nimpl_abstract_phylum::op_name() const {\
\n return operator_info[prod_sel()].name;\
\n}\
\n\
\ncasestring\
\nmkcasestring(const kc_char_t *kc"), kc_current_view );
kc_printer(kc_t("_s, int length)\
\n{\
\n KC_COLLECT_STATS0(KC_CREATE_STATS(sel__Str));\
\n\
\n casestring"), kc_current_view); }
if(g_options.smart_pointer)
{
{ kc_printer(kc_t("_ptr"), kc_current_view); }
}
{ kc_printer(kc_t(" kc_x=new impl_casestring__Str(kc_s);\
\n if(length>=0) \
\n kc_x->make_own(length);\
\n \
\n casestring unique_kc_x=hashtables[uniq]->ht_check_insert((casestring)kc_x);\
\n if(unique_kc_x!=k"), kc_current_view );
kc_printer(kc_t("c_x) {\
\n if(length<0) \
\n kc_x->name=0;\
\n\
\n"), kc_current_view); }
if(!g_options.smart_pointer)
{
{ kc_printer(kc_t(" delete kc_x;\
\n"), kc_current_view); }
}
{ kc_printer(kc_t(" kc_x=unique_kc_x;\
\n } else {\
\n KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel__Str));\
\n if(length<0) \
\n kc_x->make_own(static_cast<int>(kc_strlen(kc_s)));\
\n\
\n kc_x->post_create();\
\n"), kc_current_view );
kc_printer(kc_t(" }\
\n return kc_x;\
\n}\
\n\
\nnocasestring\
\nmknocasestring(const kc_char_t *kc_s, int length)\
\n{\
\n KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NoCaseStr));\
\n\
\n nocasestring"), kc_current_view); }
if(g_options.smart_pointer)
{
{ kc_printer(kc_t("_ptr"), kc_current_view); }
}
{ kc_printer(kc_t(" kc_x=new impl_nocasestring_NoCaseStr(kc_s);\
\n if(length>=0)\
\n kc_x->make_own(length);\
\n nocasestring unique_kc_x=hashtables[uniq]->ht_check_insert((nocasestring)kc_x);\
\n if(unique_kc_x!"), kc_current_view );
kc_printer(kc_t("=kc_x) {\
\n if(length<0)\
\n kc_x->name=0;\
\n"), kc_current_view); }
if(!g_options.smart_pointer)
{
{ kc_printer(kc_t(" delete kc_x;\
\n"), kc_current_view); }
}
{ kc_printer(kc_t(" kc_x=unique_kc_x;\
\n } else {\
\n KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NoCaseStr));\
\n if(length<0)\
\n kc_x->make_own(static_cast<int>(kc_strlen(kc_s)));\
\n kc_x->post_create();\
\n"), kc_current_view );
kc_printer(kc_t(" }\
\n\
\n return kc_x;\
\n}\
\n\
\ninteger\
\nmkinteger(const INTEGER kc_i)\
\n{\
\n KC_COLLECT_STATS0(KC_CREATE_STATS(sel__Int));\
\n\
\n integer kc_x =new impl_integer__Int(kc_i);\
\n "), kc_current_view );
kc_printer(kc_t(" integer unique_kc_x=hashtables[uniq]->ht_check_insert(kc_x);\
\n if(unique_kc_x!=kc_x) {\
\n"), kc_current_view); }
if(!g_options.smart_pointer)
{
{ kc_printer(kc_t(" delete kc_x;\
\n"), kc_current_view); }
}
{ kc_printer(kc_t(" kc_x=unique_kc_x;\
\n } else {\
\n KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel__Int));\
\n kc_x->post_create();\
\n }\
\n\
\n return kc_x;\
\n}\
\n\
\nreal\
\nmkreal(const REAL kc_r)\
\n{"), kc_current_view );
kc_printer(kc_t("\
\n KC_COLLECT_STATS0(KC_CREATE_STATS(sel__Real));\
\n\
\n real kc_x=new impl_real__Real(kc_r);\
\n real unique_kc_x=hashtables[uniq]->ht_check_insert(kc_x);\
\n if(unique_kc_x!=kc_x) {\
\n"), kc_current_view); }
if(!g_options.smart_pointer)
{
{ kc_printer(kc_t(" delete kc_x;\
\n"), kc_current_view); }
}
{ kc_printer(kc_t(" kc_x=unique_kc_x;\
\n } else {\
\n KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel__Real));\
\n kc_x->post_create();\
\n }\
\n\
\n return kc_x;\
\n}\
\n\
\nvoidptr\
\nmkvoidptr(void *kc_p)\
"), kc_current_view );
kc_printer(kc_t("\n{\
\n KC_COLLECT_STATS0(KC_CREATE_STATS(sel__VoidPtr));\
\n voidptr kc_x=new impl_voidptr__VoidPtr(kc_p);\
\n voidptr unique_kc_x=hashtables[uniq]->ht_check_insert(kc_x);\
\n if(unique_kc"), kc_current_view );
kc_printer(kc_t("_x!=kc_x) {\
\n"), kc_current_view); }
if(!g_options.smart_pointer)
{
{ kc_printer(kc_t(" delete kc_x;\
\n"), kc_current_view); }
}
{ kc_printer(kc_t(" kc_x=unique_kc_x;\
\n } else {\
\n KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel__VoidPtr));\
\n kc_x->post_create();\
\n }\
\n return kc_x;\
\n}\
\n\
\n"), kc_current_view); }
kc::unparse(d, kc_printer, kc_current_view);
kc::unparse(this, kc_printer, view_gen_access_functions);
{ kc_printer(kc_t("\
\nabstract_phylum\
\nimpl_abstract_phylum::subphylum(int) const\
\n{\
\n return 0;\
\n}\
\n\
\nvoid\
\nimpl_abstract_phylum::set_subphylum(int,abstract_phylum)\
\n{\
\n}\
\n\
\nvoid\
\nimpl_abstract"), kc_current_view );
kc_printer(kc_t("_phylum::free(bool kc_rec)\
\n{\
\n KC_COLLECT_STATS0(KC_FREE_CALLED_STATS(prod_sel(), kc_rec));\
\n"), kc_current_view); }
if(g_options.smart_pointer)
{
{ kc_printer(kc_t(" if(get_ref())\
\n get_ref()->unlock();\
\n"), kc_current_view); }
}
{ kc_printer(kc_t(" if (!"), kc_current_view); }
if(g_options.smart_pointer)
{
{ kc_printer(kc_t("get_ref()"), kc_current_view); }
}
else
{
{ kc_printer(kc_t("phylum_info[phylum()].uniq_stored"), kc_current_view); }
}
{ kc_printer(kc_t(") {\
\n"), kc_current_view); }
if(!g_options.smart_pointer)
{
{ kc_printer(kc_t(" if (kc_rec) {\
\n abstract_phylum son;\
\n for (int kc_i=0; (son = subphylum(kc_i)); kc_i++)\
\n {\
\n if (son!=0) son->free(kc_rec);\
\n son=0;\
\n }\
\n }\
\n"), kc_current_view); }
}
{ kc_printer(kc_t(" KC_COLLECT_STATS0(KC_FREED_STATS(prod_sel(), kc_rec));\
\n delete this;\
\n }\
\n}\
\n\
\nbool\
\nimpl_abstract_phylum::eq(c_abstract_phylum kc_p2) const\
\n{\
\n if (this == kc_p2)\
\n return tru"), kc_current_view );
kc_printer(kc_t("e;\
\n if (prod_sel() != kc_p2->prod_sel())\
\n return false;\
\n\
\n int kc_st = phylum_info[phylum()].uniq_stored;\
\n if (kc_st && kc_storageclass_still_uniq[kc_st])\
\n return false;\
\n"), kc_current_view );
kc_printer(kc_t("\
\n c_abstract_phylum son1;\
\n for (int kc_i=0; (son1 = subphylum(kc_i)); kc_i++) {\
\n if (!son1->eq(kc_p2->subphylum(kc_i)))\
\n return false;\
\n }\
\n\
\n return true;\
\n}\
\n\
\n"), kc_current_view );
kc_printer(kc_t("static string kc_indentation = \"\";\
\nstatic const char *kc_printformat_not_nullary_open = \"%s%s(\\n\";\
\nstatic const char *kc_printformat_list_open = \"%s%s\\n\";\
\n\
\nstatic const char *kc_pri"), kc_current_view );
kc_printer(kc_t("ntformat_not_nullary_close = \"%s)\\n\";\
\nstatic const char *kc_printformat_nullary = \"%s%s()\\n\";\
\n\
\nvoid\
\nimpl_abstract_phylum::fprint(FILE*kc_f)\
\n{\
\n int kc_i;\
\n\
\n if (!kc_f)"), kc_current_view );
kc_printer(kc_t(" kc_f = stdout;\
\n abstract_list al = dynamic_cast<abstract_list>(this);\
\n if (al != 0 && !al->is_nil()) {\
\n fprintf(kc_f, kc_printformat_list_open, kc_indentation.c_str(), op_name());\
\n k"), kc_current_view );
kc_printer(kc_t("c_indentation+=\"| \";\
\n subphylum(0)->fprint(kc_f);\
\n kc_indentation=kc_indentation.substr(0, kc_indentation.length()-2);\
\n phylum_cast<abstract_list>(subphylum(1))->fprint_list(kc_f);\
\n kc_in"), kc_current_view );
kc_printer(kc_t("dentation=kc_indentation.substr(0, kc_indentation.length()-2);\
\n } else // not list\
\n switch(phylum()) {\
\n case phylum_voidptr:\
\n \vfprintf(kc_f, \"%s%p\\n\", kc_indentation.c_str(), "), kc_current_view );
kc_printer(kc_t("static_cast<voidptr>(this)->pointer);\
\n break;\r\
\n case phylum_casestring:\
\n case phylum_nocasestring:\
\n \vfprintf(kc_f, \"%s%s\\n\", kc_indentation.c_str(), static_cast<casestring>(thi"), kc_current_view );
kc_printer(kc_t("s)->name);\
\n break;\r\
\n case phylum_integer:\
\n \vfprintf(kc_f, \"%s%i\\n\", kc_indentation.c_str(), static_cast<integer>(this)->value);\
\n break;\r\
\n case phylum_real:\
\n \vfp"), kc_current_view );
kc_printer(kc_t("rintf(kc_f, \"%s%f\\n\", kc_indentation.c_str(), static_cast<real>(this)->value);\
\n break;\r\
\n default:\
\n \vif (!subphylum(0)) {\
\n fprintf(kc_f, kc_printformat_nullary, kc_indentation."), kc_current_view );
kc_printer(kc_t("c_str(), op_name());\
\n } else {\
\n fprintf(kc_f, kc_printformat_not_nullary_open, kc_indentation.c_str(), op_name());\
\n kc_indentation+=\" \";\
\n abstract_phylum son;\
\n for (kc_i=0; (s"), kc_current_view );
kc_printer(kc_t("on = subphylum(kc_i)); kc_i++) {\
\n son->fprint(kc_f);\
\n }\
\n kc_indentation=kc_indentation.substr(0, kc_indentation.length()-2);\
\n fprintf(kc_f, kc_printformat_not_nullary_close, kc_inde"), kc_current_view );
kc_printer(kc_t("ntation.c_str());\
\n }\r\
\n }\
\n}\
\n\
\nvoid \
\nimpl_abstract_phylum::print()\
\n{\
\n fprint(stdout);\
\n}\
\n\
\nvoid \
\nimpl_abstract_list::fprint_list(FILE*kc_f)\
\n{\
\n if (!kc_f"), kc_current_view );
kc_printer(kc_t(")\
\n kc_f = stdout;\
\n if (this->is_nil()) {\
\n kc_indentation+=\"`-\";\
\n fprintf(kc_f, kc_printformat_nullary, kc_indentation.c_str(), op_name());\
\n } else {\
\n kc_indentation+=\"|-\";\
\n"), kc_current_view );
kc_printer(kc_t(" fprintf(kc_f, kc_printformat_list_open, kc_indentation.c_str(), op_name());\
\n kc_indentation=kc_indentation.substr(0, kc_indentation.length()-2);\
\n kc_indentation+=\"| \";\
\n subphylum(0)->fprint"), kc_current_view );
kc_printer(kc_t("(kc_f);\
\n kc_indentation=kc_indentation.substr(0, kc_indentation.length()-2);\
\n phylum_cast<abstract_list>(subphylum(1))->fprint_list(kc_f);\
\n }\
\n}\
\n\
\nint\
\nimpl_abstract_list::length()"), kc_current_view );
kc_printer(kc_t(" const\
\n{\
\n int kc_length = 0;\
\n c_abstract_phylum kc_p = this;\
\n while((kc_p = kc_p->subphylum(1)))\
\n kc_length++;\
\n return kc_length;\
\n}\
\n"), kc_current_view); }
if(g_options.smart_pointer)
{
{ kc_printer(kc_t("void impl_abstract_list::freelist() { }\n"), kc_current_view); }
}
else
{
{ kc_printer(kc_t("void impl_abstract_list::freelist()\
\n{\
\n abstract_phylum kc_p = this, kc_tmp_p;\
\n do {\
\n kc_tmp_p=kc_p->subphylum(1);\
\n kc_p->free(false);\
\n kc_p=kc_tmp_p;\
\n } while(kc_p);\
\n}\
\n"), kc_current_view); }
}
{ kc_printer(kc_t("abstract_phylum\
\nimpl_abstract_list::do_concat(c_abstract_phylum kc_p2, enum_operators mk) const\
\n{\
\n abstract_phylum next = subphylum(1);\
\n if(!next)\
\n return const_cast<abstract_phyl"), kc_current_view );
kc_printer(kc_t("um>(kc_p2);\
\n return kc_create(mk, subphylum(0), static_cast<abstract_list>(next)->do_concat(kc_p2, mk));\
\n}\
\n\
\nabstract_phylum\
\nimpl_abstract_list::do_reverse(c_abstract_phylum tail, enum"), kc_current_view );
kc_printer(kc_t("_operators mk) const\
\n{\
\n for (impl_abstract_list const* iterator_ = this; iterator_->subphylum(1) != 0;\
\n iterator_ = static_cast<impl_abstract_list const*>(iterator_->subphylum(1)) )\
\n"), kc_current_view );
kc_printer(kc_t(" tail = kc_create(mk, iterator_->subphylum(0), const_cast<abstract_phylum>(tail));\
\n return const_cast<abstract_phylum>(tail);\
\n}\
\n\
\nabstract_phylum\
\nimpl_abstract_list::last() const\
\n{\
\n"), kc_current_view );
kc_printer(kc_t(" c_abstract_phylum kc_p = this, next = subphylum(1), nextnext;\
\n#ifdef _AFX\
\n ASSERT(next);\
\n if(!next)\
\n return NULL;\
\n#else\
\n if(!next){\
\n fflush(stdout);\
\n fprintf(stderr"), kc_current_view );
kc_printer(kc_t(", \"Internal Error: list::last was called with argument Nil%s\\n\", phylum_name());\
\n exit(1);\
\n }\
\n#endif\
\n while ((nextnext = next->subphylum(1))) {\
\n kc_p = next;\
\n next = nextnext"), kc_current_view );
kc_printer(kc_t(";\
\n }\
\n return const_cast<abstract_phylum>(kc_p->subphylum(0));/* XXX remove cast */\
\n}\
\n\
\nabstract_phylum\
\nimpl_abstract_list::do_map(abstract_phylum (*kc_fp)(abstract_phylum), enum_"), kc_current_view );
kc_printer(kc_t("operators mk)\
\n{\
\n abstract_phylum el = subphylum(0);\
\n if (!el)\
\n return this;\
\n abstract_list next = static_cast<abstract_list>(subphylum(1));\
\n return kc_create(mk, kc_fp(el)"), kc_current_view );
kc_printer(kc_t(", next->do_map(kc_fp, mk));\
\n}\
\n\
\nabstract_phylum\
\nimpl_abstract_list::do_filter(bool (*kc_fp)(abstract_phylum), enum_operators mk)\
\n{\
\n abstract_phylum el = subphylum(0);\
\n if (!el"), kc_current_view );
kc_printer(kc_t(")\
\n return this;\
\n abstract_list next = static_cast<abstract_list>(subphylum(1));\
\n if ((*kc_fp)(el)) {\
\n return kc_create(mk, el, next->do_filter(kc_fp, mk));\
\n } else {\
\n return "), kc_current_view );
kc_printer(kc_t("next->do_filter(kc_fp, mk);\
\n }\
\n}\
\n\
\nabstract_list\
\nimpl_abstract_list::do_append(abstract_phylum new_last, abstract_list eol)\
\n{\
\n abstract_list next = this;\
\n while (!next->"), kc_current_view );
kc_printer(kc_t("is_nil())\
\n next = phylum_cast<abstract_list>(next->subphylum(1));\
\n next->set_subphylum(0, new_last);\
\n next->set_subphylum(1, eol);\
\n return next;\
\n}\
\n\
\nabstract_phylum\
\nimpl"), kc_current_view );
kc_printer(kc_t("_abstract_list::do_merge(abstract_list second,abstract_phylum(*kc_fp)(abstract_phylum,abstract_phylum), enum_operators mk)\
\n{\
\n abstract_phylum el = subphylum(0);\
\n if (!el)\
\n return this"), kc_current_view );
kc_printer(kc_t(";\
\n abstract_phylum el2 = second->subphylum(0);\
\n if (!el2)\
\n return el2;\
\n abstract_list next = static_cast<abstract_list>(subphylum(1));\
\n abstract_list next2 = static_cast<abst"), kc_current_view );
kc_printer(kc_t("ract_list>(second->subphylum(1));\
\n return kc_create(mk, kc_fp(el,el2), next->do_merge(next2, kc_fp, mk));\
\n}\
\n\
\nabstract_phylum\
\nimpl_abstract_list::do_reduce(abstract_phylum neutral, abs"), kc_current_view );
kc_printer(kc_t("tract_phylum(*kc_fp)(abstract_phylum,abstract_phylum)) {\
\n abstract_phylum el = subphylum(0);\
\n if (!el)\
\n return neutral;\
\n abstract_list next = static_cast<abstract_list>(subphylum(1"), kc_current_view );
kc_printer(kc_t("));\
\n return kc_fp(el,next->do_reduce(neutral,kc_fp));\
\n}\
\n\
\n"), kc_current_view); }
}
break;
}
case view_gen_operatorcast_h_enum: {
view_gen_operatorcast_h_class& kc_current_view=static_cast<view_gen_operatorcast_h_class&>(kc_current_view_base);
{
const phylumdeclarations d = this->phylumdeclarations_1;
{ kc_printer(kc_t("/* translation of file(s)\n"), kc_current_view); }
kc::unparse(Thefnfiles, kc_printer, kc_current_view);
{ kc_printer(kc_t(" */\
\n/* generated by:\
\n * "), kc_current_view); }
kc::unparse(kimwitu_copyright, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n */\
\n#ifndef KC_OPERATOR_CAST_HEADER\
\n#define KC_OPERATOR_CAST_HEADER\
\n#include \""), kc_current_view); }
PRINT(g_options.prefix.c_str());
{ kc_printer(kc_t("k.h\" // in case a user forgets\
\n#include <typeinfo> // for bad_cast\
\n\
\n"), kc_current_view); }
kc::unparse(d, kc_printer, kc_current_view);
{ kc_printer(kc_t("#endif // KC_OPERATOR_CAST_HEADER\n\n"), kc_current_view); }
}
break;
}
case view_gen_operatordecls_h_enum: {
view_gen_operatordecls_h_class& kc_current_view=static_cast<view_gen_operatordecls_h_class&>(kc_current_view_base);
{
const phylumdeclarations d = this->phylumdeclarations_1;
{ kc_printer(kc_t("\
\ncasestring mkcasestring( const kc_char_t *, int length = -1);\
\nnocasestring mknocasestring( const kc_char_t *, int length = -1);\
\ninteger mkinteger( const INTEGER );\
\nreal mkreal( const REAL "), kc_current_view );
kc_printer(kc_t(");\
\ninline casestring _Str( const kc_char_t * cc) { return mkcasestring(cc); }\
\ninline nocasestring NoCaseStr( const kc_char_t * cc) { return mknocasestring(cc); }\
\ninline integer _Int( const INT"), kc_current_view );
kc_printer(kc_t("EGER cc) { return mkinteger(cc); }\
\ninline real _Real( const REAL cc) { return mkreal(cc); }\
\n"), kc_current_view); }
kc::unparse(d, kc_printer, kc_current_view);
}
break;
}
case view_gen_assertmacros_c_enum: {
view_gen_assertmacros_c_class& kc_current_view=static_cast<view_gen_assertmacros_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("\
\nvoid\
\nkc_no_default_in_with( const char *kc_func, int kc_line, const char *kc_file )\
\n{\
\n fflush(stdout);\
\n#ifdef _AFX\
\n USES_CONVERSION;\
\n const _TCHAR* format=A2CT(KC_NO_DEFAULT_IN"), kc_current_view );
kc_printer(kc_t("_WITH);\
\n const _TCHAR* tkc_func=A2CT(kc_func);\
\n const _TCHAR* tkc_file=A2CT(kc_file);\
\n TRACE( format, tkc_func, tkc_file, kc_line );\
\n#ifdef _DEBUG\
\n if (AfxAssertFailedLine(kc_file, kc"), kc_current_view );
kc_printer(kc_t("_line))\
\n#endif\
\n AfxDebugBreak();\
\n#else\
\n fprintf( stderr, KC_NO_DEFAULT_IN_WITH, kc_func, kc_file, kc_line );\
\n#ifndef KC_NODEFAULT_NO_ABORT\
\n abort();\
\n#else\
\n exit( 1 );\
\n"), kc_current_view );
kc_printer(kc_t("#endif\
\n#endif\
\n}\
\n\
\nvoid\
\nkc_returnless_function( const char *kc_func, int kc_line, const char *kc_file )\
\n{\
\n fflush(stdout);\
\n#ifdef _AFX\
\n USES_CONVERSION;\
\n const _TCHAR* fo"), kc_current_view );
kc_printer(kc_t("rmat=_T(\"Internal Error: function %s does not return a value, at %s:%d\");\
\n const _TCHAR* tkc_func=A2CT(kc_func);\
\n const _TCHAR* tkc_file=A2CT(kc_file);\
\n TRACE( format, tkc_func, tkc_file, kc"), kc_current_view );
kc_printer(kc_t("_line );\
\n#ifdef _DEBUG\
\n if (AfxAssertFailedLine(kc_file, kc_line))\
\n#endif\
\n AfxDebugBreak();\
\n#else\
\n fprintf( stderr, \"Internal Error: function %s does not return a value, at %s:"), kc_current_view );
kc_printer(kc_t("%d\", kc_func, kc_file, kc_line );\
\n#ifndef KC_NODEFAULT_NO_ABORT\
\n abort();\
\n#else\
\n exit( 1 );\
\n#endif\
\n#endif\
\n}\
\n\
\nvoid\
\nkc_assertionFailed(const char *kc_fn, int kc_l)\
\n"), kc_current_view );
kc_printer(kc_t("{\
\n fflush(stdout);\
\n#ifdef _AFX\
\n USES_CONVERSION;\
\n const _TCHAR* format=_T(\"Internal Error: Assertion failed at %s:%d\\n\");\
\n const _TCHAR* tkc_func=A2CT(kc_fn);\
\n TRACE( format, tk"), kc_current_view );
kc_printer(kc_t("c_func, kc_l );\
\n#ifdef _DEBUG\
\n if (AfxAssertFailedLine(kc_fn, kc_l))\
\n#endif\
\n AfxDebugBreak();\
\n#else\
\n fprintf( stderr, \"Internal Error: Assertion failed at %s:%d\\n\", kc_fn, kc"), kc_current_view );
kc_printer(kc_t("_l );\
\n#ifndef KC_ASSERT_NO_ABORT\
\n abort();\
\n#else\
\n exit( 1 );\
\n#endif\
\n#endif\
\n}\
\n\
\nvoid\
\nkc_assertionReasonFailed(const char *kc_fn, int kc_l, const char *kc_s)\
\n{\
\n "), kc_current_view );
kc_printer(kc_t(" fflush(stdout);\
\n#ifdef _AFX\
\n USES_CONVERSION;\
\n const _TCHAR* format=_T(\"Internal Error: Assertion failed at file %s:%d: %s\\n\");\
\n const _TCHAR* tkc_func=A2CT(kc_fn);\
\n const _TCHAR* t"), kc_current_view );
kc_printer(kc_t("kc_s=A2CT(kc_s);\
\n TRACE( format, tkc_func, kc_l, tkc_s );\
\n#ifdef _DEBUG\
\n if (AfxAssertFailedLine(kc_fn, kc_l))\
\n#endif\
\n AfxDebugBreak();\
\n#else\
\n fprintf( stderr, \"Internal Err"), kc_current_view );
kc_printer(kc_t("or: Assertion failed at file %s:%d: %s\\n\", kc_fn, kc_l, kc_s );\
\n#ifndef KC_ASSERT_NO_ABORT\
\n abort();\
\n#else\
\n exit( 1 );\
\n#endif\
\n#endif\
\n}\
\n\
\nvoid\
\nkc_assertionNonNullFai"), kc_current_view );
kc_printer(kc_t("led(const char *kc_fn, int kc_l, const char *kc_str)\
\n{\
\n fflush(stdout);\
\n#ifdef _AFX\
\n USES_CONVERSION;\
\n const _TCHAR* format=_T(\"Internal Error: Assertion failed at %s:%d: pointer %s "), kc_current_view );
kc_printer(kc_t("is NULL\\n\");\
\n const _TCHAR* tkc_func=A2CT(kc_fn);\
\n const _TCHAR* tkc_s=A2CT(kc_str);\
\n TRACE( format , tkc_func, kc_l, tkc_s);\
\n#ifdef _DEBUG\
\n if (AfxAssertFailedLine(kc_fn, kc_l))\
\n"), kc_current_view );
kc_printer(kc_t("#endif\
\n AfxDebugBreak();\
\n#else\
\n fprintf( stderr, \"Internal Error: Assertion failed at %s:%d: pointer %s is NULL\\n\", kc_fn, kc_l, kc_str );\
\n#ifndef KC_ASSERT_NO_ABORT\
\n abort();\
\n"), kc_current_view );
kc_printer(kc_t("#else\
\n exit( 1 );\
\n#endif\
\n#endif\
\n}\
\n\
\nvoid\
\nkc_assertionOperatorInPhylumFailed(int kc_op, const char *kc_str1, const char *kc_str2, const char *kc_phy, const char *kc_fn, int kc_l)\
\n"), kc_current_view );
kc_printer(kc_t("{\
\n fflush(stdout);\
\n#ifdef _AFX\
\n USES_CONVERSION;\
\n const _TCHAR* format=_T(\"Internal Error: Assertion failed at %s:%d: illegal value for (%s) %s%s: %d not a valid operator\\n\");\
\n"), kc_current_view );
kc_printer(kc_t(" const _TCHAR* tkc_func=A2CT(kc_fn);\
\n const _TCHAR* tkc_s1=A2CT(kc_str1);\
\n const _TCHAR* tkc_s2=A2CT(kc_str2);\
\n const _TCHAR* tname=A2CT(kc_phy);\
\n if ((kc_op <= one_before_fi"), kc_current_view );
kc_printer(kc_t("rst_operator) || (kc_op >= last_operator)) {\
\n TRACE (format, tkc_func, kc_l, tname, tkc_s1, tkc_s2, kc_op );\
\n } else {\
\n format=_T(\"Internal Error: Assertion failed at %s:%d: illegal value "), kc_current_view );
kc_printer(kc_t("for (%s) %s%s: %s (%d) is a value of %s\\n\");\
\n const _TCHAR* tname2=A2CT(operator_info[kc_op].name);\
\n const _TCHAR* tname3=A2CT(phylum_info[operator_info[kc_op].phylum].name);\
\n TRACE(format,t"), kc_current_view );
kc_printer(kc_t("kc_func, kc_l, tname, tkc_s1, tkc_s2, tname2, kc_op, tname3 );\
\n }\
\n#ifdef _DEBUG\
\n if (AfxAssertFailedLine(kc_fn, kc_l))\
\n#endif\
\n AfxDebugBreak();\
\n#else\
\n if ((kc_op <= one_befo"), kc_current_view );
kc_printer(kc_t("re_first_operator) || (kc_op >= last_operator)) {\
\n fprintf( stderr, \"Internal Error: Assertion failed at %s:%d: illegal value for (%s) %s%s: %d not a valid operator\\n\",\
\n kc_fn, kc_l, kc_phy, "), kc_current_view );
kc_printer(kc_t("kc_str1, kc_str2, kc_op );\
\n } else {\
\n fprintf( stderr, \"Internal Error: Assertion failed at %s:%d: illegal value for (%s) %s%s: %s (%d) is a value of %s\\n\",\
\n kc_fn, kc_l, kc_phy, kc_str"), kc_current_view );
kc_printer(kc_t("1, kc_str2, operator_info[kc_op].name, kc_op, phylum_info[operator_info[kc_op].phylum].name );\
\n }\
\n#ifndef KC_ASSERT_NO_ABORT\
\n abort();\
\n#else\
\n exit( 1 );\
\n#endif\
\n#endif\
\n}"), kc_current_view );
kc_printer(kc_t("\
\n\
\nvoid kc_invalid_operator( const char *kc_func_prefix, enum_phyla kc_phy, int kc_line, const char *kc_file, enum_operators kc_oper )\
\n{\
\n fflush(stdout);\
\n#ifdef _AFX\
\n USES_CONVER"), kc_current_view );
kc_printer(kc_t("SION;\
\n const _TCHAR* format=_T(\"Internal Error: invalid operator code in %s%s at %s:%d: %s\\n\");\
\n const _TCHAR* tkc_func=A2CT(kc_func_prefix);\
\n const _TCHAR* tkc_file=A2CT(kc_file);"), kc_current_view );
kc_printer(kc_t("\
\n const _TCHAR* ts1=A2CT(phylumname_or_error( kc_phy ));\
\n const _TCHAR* ts2=A2CT(kc_operatorname_or_error( kc_oper ));\
\n TRACE( format, tkc_func, ts1, tkc_file, kc_line, ts2);\
\n#ifde"), kc_current_view );
kc_printer(kc_t("f _DEBUG\
\n if (AfxAssertFailedLine(kc_file, kc_line))\
\n#endif\
\n AfxDebugBreak();\
\n#else\
\n fprintf( stderr, \"Internal Error: invalid operator code in %s%s at %s:%d: %s\\n\", kc_func_pre"), kc_current_view );
kc_printer(kc_t("fix, phylumname_or_error( kc_phy ), kc_file, kc_line, kc_operatorname_or_error( kc_oper ));\
\n#ifndef KC_INVALID_OPERATOR_NO_ABORT\
\n abort();\
\n#else\
\n exit( 1 );\
\n#endif\
\n#endif\
\n}\
\n"), kc_current_view); }
}
break;
}
case view_gen_assertmacros_h_enum: {
view_gen_assertmacros_h_class& kc_current_view=static_cast<view_gen_assertmacros_h_class&>(kc_current_view_base);
{
const phylumdeclarations d = this->phylumdeclarations_1;
{ kc_printer(kc_t("\
\n#ifndef KC_NO_DEFAULT_IN_WITH\
\n# define KC_NO_DEFAULT_IN_WITH \"Internal Error: no default action defined in function %s at %s:%d\\n\"\
\n#endif\
\nvoid kc_no_default_in_with (const char*, int, "), kc_current_view );
kc_printer(kc_t("const char*);\
\nvoid kc_returnless_function (const char *, int, const char*);\
\n\
\n#ifndef NDEBUG\
\n# define assertCond(t) do {if (!(t)) kc_assertionFailed(__FILE__,__LINE__);}while(false)\
\n# def"), kc_current_view );
kc_printer(kc_t("ine assertReason(t,s) do {if (!(t)) kc_assertionReasonFailed(__FILE__,__LINE__,s);}while(false)\
\n# define assertNonNull(p) do {if (p == 0) kc_assertionNonNullFailed(__FILE__,__LINE__,#p);}while(false"), kc_current_view );
kc_printer(kc_t(")\
\n# define assertPhylum(ptr,phy) do { \\\
\n assertNonNull(ptr); \\\
\n if (ptr->phylum()!=phy) \\\
\n kc_assertionOperatorInPhylumFailed(ptr->prod_sel(),#ptr,\"->prod_sel()\",\"phy\",__FILE__"), kc_current_view );
kc_printer(kc_t(",__LINE__); \\\
\n } while(false)\
\n#else\
\n# define assertCond(t)\
\n# define assertReason(t,s)\
\n# define assertNonNull(ptr)\
\n# define assertPhylum(op,phy)\
\n#endif\
\n#define assertionFaile"), kc_current_view );
kc_printer(kc_t("d(s) kc_assertionReasonFailed(__FILE__,__LINE__,s)\
\n\r\
\nvoid kc_assertionFailed (const char*, int) __attribute__ ((noreturn));\
\nvoid kc_assertionReasonFailed (const char*, int, const char*) __att"), kc_current_view );
kc_printer(kc_t("ribute__ ((noreturn));\
\nvoid kc_assertionNonNullFailed (const char*, int, const char*) __attribute__ ((noreturn));\
\nvoid kc_assertionOperatorInPhylumFailed (int, const char*, const char*, const cha"), kc_current_view );
kc_printer(kc_t("r*, const char*, int) __attribute__ ((noreturn));\
\n"), kc_current_view); }
}
break;
}
case view_gen_noofoperators_h_enum: {
view_gen_noofoperators_h_class& kc_current_view=static_cast<view_gen_noofoperators_h_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("#define KC_NO_OF_OPERATORS "), kc_current_view); }
kc::unparse(g_no_of_operators, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n\
\n"), kc_current_view); }
}
break;
}
case view_gen_yaccstacktype_h_enum: {
view_gen_yaccstacktype_h_class& kc_current_view=static_cast<view_gen_yaccstacktype_h_class&>(kc_current_view_base);
{
const phylumdeclarations d = this->phylumdeclarations_1;
{ kc_printer(kc_t("#ifndef YYSTYPE_HEADER\
\n#define YYSTYPE_HEADER\
\nunion KC_YYSTYPE {\
\n"), kc_current_view); }
kc::unparse(d, kc_printer, kc_current_view);
{ kc_printer(kc_t("};\
\n#define YYSTYPE KC_YYSTYPE\
\n#endif // YYSTYPE_HEADER\
\n"), kc_current_view); }
}
break;
}
case view_gen_nodetypes_h_enum: {
view_gen_nodetypes_h_class& kc_current_view=static_cast<view_gen_nodetypes_h_class&>(kc_current_view_base);
{
const phylumdeclarations d = this->phylumdeclarations_1;
}
break;
}
case view_gen_nodetypedefs_h_enum: {
view_gen_nodetypedefs_h_class& kc_current_view=static_cast<view_gen_nodetypedefs_h_class&>(kc_current_view_base);
{
const phylumdeclarations d = this->phylumdeclarations_1;
if(!g_options.no_printdot)
{
{ kc_printer(kc_t("typedef class impl_kc_dotedgenode_t *kc_dotedgenode_t;\
\n"), kc_current_view); }
}
{ kc_printer(kc_t("\
\n"), kc_current_view); }
kc::unparse(d, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n"), kc_current_view); }
}
break;
}
case view_gen_operatormap_c_enum: {
view_gen_operatormap_c_class& kc_current_view=static_cast<view_gen_operatormap_c_class&>(kc_current_view_base);
{
const phylumdeclarations d = this->phylumdeclarations_1;
kc::unparse(d, kc_printer, view_gen_operatormap_subphyla);
kc::unparse(d, kc_printer, view_gen_operatormap_attributes);
{ kc_printer(kc_t("\
\n\
\nKC_OPERATOR_INFO operator_info[] = {\
\n"), kc_current_view); }
{
int i = OPERATORNUMBEROFFSET; do
{
{ kc_printer(kc_t(" { \"\", 0, 0, one_before_first_phylum, 0, 0, 0, 0 }, /* dummy element */\
\n"), kc_current_view); }
i--;
}
while (i >= 0);
}
kc::unparse(d, kc_printer, kc_current_view);
{ kc_printer(kc_t(" { \"\", 0, 0, one_before_first_phylum, 0, 0, 0, 0 } /* last element */\
\n};\
\n\
\n"), kc_current_view); }
}
break;
}
case view_gen_phylummap_c_enum: {
view_gen_phylummap_c_class& kc_current_view=static_cast<view_gen_phylummap_c_class&>(kc_current_view_base);
{
const phylumdeclarations d = this->phylumdeclarations_1;
{ kc_printer(kc_t("KC_PHYLUM_INFO phylum_info[] = {\
\n"), kc_current_view); }
{
int i = PHYLUMNUMBEROFFSET; do
{
{ kc_printer(kc_t(" { \"\", one_before_first_operator, one_before_first_operator, (kc_storageclass_t)0 }, /* dummy element */\
\n"), kc_current_view); }
i--;
}
while (i >= 0);
}
kc::unparse(d, kc_printer, kc_current_view);
{ kc_printer(kc_t(" { \"\", one_before_first_operator, one_before_first_operator, (kc_storageclass_t)0 } /* last element */\
\n};\
\n\
\n"), kc_current_view); }
}
break;
}
case view_gen_operatormap_type_h_enum: {
view_gen_operatormap_type_h_class& kc_current_view=static_cast<view_gen_operatormap_type_h_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_enumoperators_h_enum: {
view_gen_enumoperators_h_class& kc_current_view=static_cast<view_gen_enumoperators_h_class&>(kc_current_view_base);
{
const phylumdeclarations pds = this->phylumdeclarations_1;
g_no_of_operators = OPERATORNUMBEROFFSET;
{ kc_printer(kc_t("typedef enum { one_before_first_operator = "), kc_current_view); }
kc::unparse(g_no_of_operators, kc_printer, kc_current_view);
{ kc_printer(kc_t(" ,\
\n"), kc_current_view); }
g_no_of_operators++;
kc::unparse(pds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" last_operator = "), kc_current_view); }
kc::unparse(g_no_of_operators, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n} enum_operators;\
\n"), kc_current_view); }
}
break;
}
case view_gen_enumphyla_h_enum: {
view_gen_enumphyla_h_class& kc_current_view=static_cast<view_gen_enumphyla_h_class&>(kc_current_view_base);
{
const phylumdeclarations pds = this->phylumdeclarations_1;
g_no_of_phyla = PHYLUMNUMBEROFFSET;
{ kc_printer(kc_t("typedef enum { one_before_first_phylum = "), kc_current_view); }
kc::unparse(g_no_of_phyla, kc_printer, kc_current_view);
{ kc_printer(kc_t(" ,\
\n"), kc_current_view); }
g_no_of_phyla++;
kc::unparse(pds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" last_phylum = "), kc_current_view); }
kc::unparse(g_no_of_phyla, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n} enum_phyla;\
\n\
\n"), kc_current_view); }
}
break;
}
case view_gen_alloc_c_enum: {
view_gen_alloc_c_class& kc_current_view=static_cast<view_gen_alloc_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("\
\n#ifdef KC_STATISTICS\
\nKC_OPERATOR_STATISTICS operator_statistics[KC_NO_OF_OPERATORS];\
\nstatic int kc_casestring_strlen =0;\
\nstatic int kc_nocasestring_strlen =0;\
\n# define KC_COLLECT_STATS"), kc_current_view );
kc_printer(kc_t("0(v) v\
\n#else\
\n# define KC_COLLECT_STATS0(v)\
\n#endif\
\n\
\n#ifndef KC_CREATE_STATS\
\n# define KC_CREATE_STATS(oper) operator_statistics[oper].created++;\
\n#endif\
\n#ifndef KC_EXISTINGNOTFOU"), kc_current_view );
kc_printer(kc_t("ND_STATS\
\n# define KC_EXISTINGNOTFOUND_STATS(oper) operator_statistics[oper].existing_not_found++;\
\n#endif\
\n\
\n#ifndef KC_FREE_CALLED_STATS\
\n# define KC_FREE_CALLED_STATS(oper,rec) operator_"), kc_current_view );
kc_printer(kc_t("statistics[oper].free_called[(rec?true:false)]++;\
\n#endif\
\n\
\n#ifndef KC_FREED_STATS\
\n# define KC_FREED_STATS(oper,rec) operator_statistics[oper].freed[(rec?true:false)]++;\
\n#endif\
\n"), kc_current_view); }
}
break;
}
case view_gen_alloc_h_enum: {
view_gen_alloc_h_class& kc_current_view=static_cast<view_gen_alloc_h_class&>(kc_current_view_base);
{
const phylumdeclarations d = this->phylumdeclarations_1;
{ kc_printer(kc_t("\
\nextern bool kc_storageclass_still_uniq[];\
\n"), kc_current_view); }
}
break;
}
case view_gen_k_c_enum: {
view_gen_k_c_class& kc_current_view=static_cast<view_gen_k_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("/* translation of file(s)\n"), kc_current_view); }
kc::unparse(Thefnfiles, kc_printer, kc_current_view);
{ kc_printer(kc_t(" */\
\n/* generated by:\
\n * "), kc_current_view); }
kc::unparse(kimwitu_copyright, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n */\
\n#define KC_TYPES\
\n"), kc_current_view); }
if(g_options.stdafx!="") {
PRINT("#include \"");
PRINT(g_options.stdafx.c_str());
PRINT("\"\n");
}
{ kc_printer(kc_t("\
\n#include \""), kc_current_view); }
PRINT(g_options.prefix.c_str());
{ kc_printer(kc_t("k.h\"\
\n#include <stdio.h>\
\n#include <ctype.h>\
\n#include <string>\
\n#include <sys/types.h>\
\n#include <stdlib.h>\
\n\
\n#ifdef _MSC_VER\
\n#pragma warning( disable : 4786 )\
\n#endif\
\n#include"), kc_current_view );
kc_printer(kc_t(" <new>\
\n#include <set>\
\n#include <list>\
\n#include <algorithm>\
\n\
\n#if !defined(USE_HASHSET) && (defined(__GNUC__) || defined(__ICC) || defined(__ECC)) \\\
\n && !defined(DONT_USE_HASHSET)\
\n#"), kc_current_view );
kc_printer(kc_t(" define USE_HASHSET\
\n#endif\
\n#ifdef USE_HASHSET\
\n# if defined(__GNUC__) && __GNUC__>2\
\n# include <ext/hash_set>\
\n# else\
\n# include <hash_set>\
\n# endif\
\n#endif\
\n\
\nusing nam"), kc_current_view );
kc_printer(kc_t("espace std;\
\n"), kc_current_view); }
kc::unparse(this, kc_printer, view_open_namespace);
{ kc_printer(kc_t("\
\ninline bool\
\nht_less(casestring p1, casestring p2){\
\n return kc_strcmp(p1->name, p2->name)<0;\
\n}\
\n\
\ninline bool\
\nht_less(nocasestring p1, nocasestring p2){\
\n return kc_strcasecm"), kc_current_view );
kc_printer(kc_t("p(p1->name, p2->name)<0;\
\n}\
\n\
\ninline bool\
\nht_less(real p1, real p2){\
\n return p1->value < p2->value;\
\n}\
\n\
\ninline bool\
\nht_less(integer p1, integer p2){\
\n return p1->value <"), kc_current_view );
kc_printer(kc_t(" p2->value;\
\n}\
\n\
\ninline bool\
\nht_less(voidptr p1, voidptr p2){\
\n return p1->pointer < p2->pointer;\
\n}\
\n\
\nbool\
\nht_less(abstract_phylum p1, abstract_phylum p2)\
\n{\
\n enum_ope"), kc_current_view );
kc_printer(kc_t("rators prod_sel=p1->prod_sel();\
\n enum_operators prod_sel2=p2->prod_sel();\
\n if(prod_sel<prod_sel2)\
\n return true;\
\n if(prod_sel>prod_sel2)\
\n return false;\
\n switch(prod_sel) {\
\n"), kc_current_view );
kc_printer(kc_t(" case sel_NoCaseStr:\
\n \vreturn ht_less(static_cast<nocasestring>(p1),static_cast<nocasestring>(p2));\r\
\n case sel__Str:\
\n \vreturn ht_less(static_cast<casestring>(p1),static_cast<casestr"), kc_current_view );
kc_printer(kc_t("ing>(p2));\r\
\n case sel__Real:\
\n \vreturn ht_less(static_cast<real>(p1),static_cast<real>(p2));\r\
\n case sel__Int:\
\n \vreturn ht_less(static_cast<integer>(p1),static_cast<integer>(p2));"), kc_current_view );
kc_printer(kc_t("\r\
\n case sel__VoidPtr:\
\n \vreturn ht_less(static_cast<voidptr>(p1),static_cast<voidptr>(p2));\r\
\n default: {\
\n int i=0;\
\n bool still_unique = kc_storageclass_still_uniq[phylum_in"), kc_current_view );
kc_printer(kc_t("fo[p1->phylum()].uniq_stored];\
\n abstract_phylum sub1=0;\
\n do {\
\n sub1=p1->subphylum(i);\
\n abstract_phylum sub2=p2->subphylum(i);\
\n if(still_unique) {\
\n if(sub1<sub2)\
\n "), kc_current_view );
kc_printer(kc_t("return true;\
\n if(sub2<sub1)\
\n return false;\
\n }\
\n else {\
\n if(ht_less(sub1, sub2))\
\n return true;\
\n if(ht_less(sub2, sub1))\
\n return false;\
\n }\
\n ++i;\
\n "), kc_current_view );
kc_printer(kc_t(" } while(sub1);\
\n }\
\n }\
\n return false;\
\n}\
\n\
\ntemplate<typename T>\
\nclass phylum_less : std::binary_function<T, T, bool>\
\n{\
\npublic:\
\n bool operator()(const T& X, const "), kc_current_view );
kc_printer(kc_t("T& Y) const\
\n \v{ return ht_less(X,Y); }\r\
\n};\
\n\
\ninline void deletefun(c_abstract_phylum t){\
\n delete const_cast<abstract_phylum>(t);\
\n}\
\n\
\n"), kc_current_view); }
string how_smart = "";
if(g_options.smart_pointer) how_smart="_ptr";
{ kc_printer(kc_t("\
\n#ifdef USE_HASHSET\
\nstruct hashitem {\
\n size_t hashvalue;\
\n casestring"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t(" contents;\
\n hashitem(casestring"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t(" cs): contents(cs) {\
\n unsigned long h = 0;\
\n kc_char_t const *s = cs->name;\
\n for ( ; *s; ++s)\
\n \vh = 5*h + *s;\r\
\n hashvalue=(size_t)h;\
\n }\
\n};\
\n\
\ninline void deletefunhashi"), kc_current_view );
kc_printer(kc_t("tem(hashitem t) {\
\n delete t.contents;\
\n}\
\n\
\n# ifdef __GNUC__\
\nstruct eq_hashitem { bool operator()(hashitem hi1, hashitem hi2) const {\
\n return kc_strcmp(hi1.contents->name, hi2.con"), kc_current_view );
kc_printer(kc_t("tents->name) == 0; } };\
\n\
\nstruct hash_hashitem { size_t operator()(hashitem hi) const {\
\n return hi.hashvalue; } };\
\n\
\n# else\
\nstruct comp_hashitem {\
\n enum { bucket_size = 4, min"), kc_current_view );
kc_printer(kc_t("_buckets = 8 };\
\n // bucket_size and min_buckets are just guesses\
\n size_t operator()(const hashitem hi) const {\
\n return hi.hashvalue; }\
\n bool operator()(const hashitem hi1, const ha"), kc_current_view );
kc_printer(kc_t("shitem hi2) const {\
\n return kc_strcmp(hi1.contents->name, hi2.contents->name) < 0; }\
\n};\
\n# endif // Whether gcc or icc\
\n#endif // Whether hash or not\
\n\
\nstruct hashtable_level\
\n{\
\n h"), kc_current_view );
kc_printer(kc_t("ashtable_level(bool cod = true): clean_on_destruction(cod) { }\
\n"), kc_current_view); }
if(!g_options.smart_pointer)
{
{ kc_printer(kc_t(" void clear(bool free_entries=true) {\
\n if(free_entries)\
\n clear_entries();\
\n _casestring.clear();\
\n _nocasestring.clear();\
\n _integer.clear();\
\n _real.clear();\
\n "), kc_current_view );
kc_printer(kc_t(" _voidptr.clear();\
\n _abstract_phylum.clear();\
\n }\
\n void clear_entries() {\
\n#ifdef USE_HASHSET\
\n std::for_each(_casestring.begin(),_casestring.end(),deletefunhashitem);\
\n#else\
\n st"), kc_current_view );
kc_printer(kc_t("d::for_each(_casestring.begin(),_casestring.end(),deletefun);\
\n#endif\
\n std::for_each(_nocasestring.begin(),_nocasestring.end(),deletefun);\
\n std::for_each(_integer.begin(),_integer.end(),delet"), kc_current_view );
kc_printer(kc_t("efun);\
\n std::for_each(_real.begin(),_real.end(),deletefun);\
\n std::for_each(_voidptr.begin(),_voidptr.end(),deletefun);\
\n std::for_each(_abstract_phylum.begin(),_abstract_phylum.end(),deletef"), kc_current_view );
kc_printer(kc_t("un);\
\n }\
\n ~hashtable_level() {\
\n clear(clean_on_destruction);\
\n }\
\n abstract_phylum check_insert(abstract_phylum t) {\
\n return *_abstract_phylum.insert(t).first;\
\n }\
\n case"), kc_current_view );
kc_printer(kc_t("string check_insert(casestring t) {\
\n#ifdef USE_HASHSET\
\n return (*_casestring.insert(hashitem(t)).first).contents;\
\n#else\
\n return *_casestring.insert(t).first;\
\n#endif\
\n }\
\n noc"), kc_current_view );
kc_printer(kc_t("asestring check_insert(nocasestring t) {\
\n return *_nocasestring.insert(t).first;\
\n }\
\n integer check_insert(integer t) {\
\n return *_integer.insert(t).first;\
\n }\
\n real check_insert"), kc_current_view );
kc_printer(kc_t("(real t) {\
\n return *_real.insert(t).first;\
\n }\
\n voidptr check_insert(voidptr t) {\
\n return *_voidptr.insert(t).first;\
\n }\
\n"), kc_current_view); }
}
else
{
{ kc_printer(kc_t(" void clear() {\
\n _casestring.clear();\
\n _nocasestring.clear();\
\n _integer.clear();\
\n _real.clear();\
\n _voidptr.clear();\
\n _abstract_phylum.clear();\
\n }\
\n abstra"), kc_current_view );
kc_printer(kc_t("ct_phylum check_insert(abstract_phylum t) {\
\n return *_abstract_phylum.insert(abstract_phylum_ptr(t)).first;\
\n }\
\n casestring check_insert(casestring t) {\
\n return *_casestring.insert(c"), kc_current_view );
kc_printer(kc_t("asestring_ptr(t)).first;\
\n }\
\n nocasestring check_insert(nocasestring t) {\
\n return *_nocasestring.insert(nocasestring_ptr(t)).first;\
\n }\
\n integer check_insert(integer t) {\
\n retur"), kc_current_view );
kc_printer(kc_t("n *_integer.insert(integer_ptr(t)).first;\
\n }\
\n real check_insert(real t) {\
\n return *_real.insert(real_ptr(t)).first;\
\n }\
\n voidptr check_insert(voidptr t) {\
\n return *_voidptr.ins"), kc_current_view );
kc_printer(kc_t("ert(voidptr_ptr(t)).first;\
\n }\
\n"), kc_current_view); }
}
{ kc_printer(kc_t("\rprivate:\v\
\n bool clean_on_destruction;\
\n#ifdef USE_HASHSET\
\n# ifdef __GNUC__\
\n# if __GNUC__==2 || (__GNUC__==3 && __GNUC_MINOR__==0)\
\n std::hash_set<hashitem, hash_hashitem, eq_hashite"), kc_current_view );
kc_printer(kc_t("m> _casestring;\
\n# else\
\n __gnu_cxx::hash_set<hashitem, hash_hashitem, eq_hashitem> _casestring;\
\n# endif\
\n# else\
\n std::hash_set<hashitem, comp_hashitem> _casestring;\
\n# endif\
\n#"), kc_current_view );
kc_printer(kc_t("else\
\n std::set<casestring"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t(", phylum_less<casestring"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t("> > _casestring;\
\n#endif\
\n std::set<nocasestring"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t(", phylum_less<nocasestring"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t("> > _nocasestring;\
\n std::set<integer"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t(", phylum_less<integer"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t("> > _integer;\
\n std::set<real"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t(", phylum_less<real"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t("> > _real;\
\n std::set<voidptr"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t(", phylum_less<voidptr"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t("> > _voidptr;\
\n std::set<abstract_phylum"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t(", phylum_less<abstract_phylum"), kc_current_view); }
kc::unparse(how_smart, kc_printer, kc_current_view);
{ kc_printer(kc_t("> > _abstract_phylum;\
\n};\
\n\
\nclass hashtable_stack: public std::list<hashtable_level> {\
\n\rpublic:\v\
\n hashtable_stack(): _pos(begin()) { }\
\n\
\n void inc_level() { _pos=insert(_pos, "), kc_current_view );
kc_printer(kc_t("hashtable_level()); }\
\n void dec_level() { if(valid() && _pos!=end()) ++_pos; }\
\n void free_level() { if(_pos!=begin()) { erase(begin(),_pos);_pos=begin(); } }\
\n\
\n bool valid() const {"), kc_current_view );
kc_printer(kc_t(" return !empty(); }\
\n hashtable_level& get_level() { return *_pos; }\
\n\
\n template<typename T>\
\n T check_insert(T t) {\
\n return dynamic_cast<T>((*_pos).check_insert(t));\
\n }\
\n\r"), kc_current_view );
kc_printer(kc_t("private:\v\
\n iterator _pos;\
\n};\
\n\
\nclass hashtable_struct_t {\
\n\rpublic:\v\
\n // don't clean _static_level on destruction (program ends)\
\n hashtable_struct_t(): _static_level(fals"), kc_current_view );
kc_printer(kc_t("e), _to_be_freed(false), _dynamic(false) { }\
\n\
\n template <typename T>\
\n T ht_check_insert(T t) {\
\n if(_dynamic && _dynamic_level.valid())\
\n return _dynamic_level.check_insert(t);\
\n"), kc_current_view );
kc_printer(kc_t(" else\
\n return dynamic_cast<T>(_static_level.check_insert(t));\
\n }\
\n void ht_static() {_dynamic=false; }\
\n void ht_dynamic() {\
\n _dynamic=true;\
\n if(!_dynamic_level.valid())\
\n"), kc_current_view );
kc_printer(kc_t(" _dynamic_level.inc_level();\
\n }\
\n void ht_inc_level() { _dynamic_level.inc_level(); }\
\n void ht_dec_level() { _dynamic_level.dec_level(); }\
\n void ht_free_level() { _dynamic_le"), kc_current_view );
kc_printer(kc_t("vel.free_level(); }\
\n void ht_clear() { _static_level.clear(); _dynamic_level.clear(); _dynamic=false; }\
\n\
\n bool to_be_freed() { return _to_be_freed; }\
\n void set_to_be_freed(bool b=t"), kc_current_view );
kc_printer(kc_t("rue) { _to_be_freed=b; }\
\n\rprivate:\v\
\n hashtable_level _static_level;\
\n hashtable_stack _dynamic_level;\
\n bool _to_be_freed; /* should be true for dynamic, false for statically alloc"), kc_current_view );
kc_printer(kc_t("ated structures */\
\n bool _dynamic;\
\n};\
\n\
\nimpl_nocasestring_NoCaseStr::impl_nocasestring_NoCaseStr(const kc_char_t* _name) : name(_name) { }\
\nvoid impl_nocasestring_NoCaseStr::make_own(in"), kc_current_view );
kc_printer(kc_t("t length) {\
\n kc_char_t *newname=new kc_char_t[length+1];\
\n for (int i=0; i < length && name[i]; ++i)\
\n newname[i] = kc_tolower(name[i]);\
\n newname[length]=0;\
\n name=newname;\
\n}"), kc_current_view );
kc_printer(kc_t("\
\n\
\nimpl_casestring__Str::impl_casestring__Str(const kc_char_t* _name) : name(_name) { }\
\nvoid impl_casestring__Str::make_own(int length) {\
\n kc_char_t *newname=kc_strncpy(new kc_char_t[leng"), kc_current_view );
kc_printer(kc_t("th+1],name,length);\
\n newname[length]=0;\
\n name=newname;\
\n}\
\n"), kc_current_view); }
}
break;
}
case view_gen_end_k_h_enum: {
view_gen_end_k_h_class& kc_current_view=static_cast<view_gen_end_k_h_class&>(kc_current_view_base);
{
kc::unparse(this, kc_printer, view_close_namespace);
{ kc_printer(kc_t("#endif // KC_TYPES_HEADER\
\n"), kc_current_view); }
}
break;
}
case view_gen_k_h_enum: {
view_gen_k_h_class& kc_current_view=static_cast<view_gen_k_h_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("/* translation of file(s)\n"), kc_current_view); }
kc::unparse(Thefnfiles, kc_printer, kc_current_view);
{ kc_printer(kc_t(" */\
\n/* generated by:\
\n * "), kc_current_view); }
kc::unparse(kimwitu_copyright, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n */\
\n#ifndef KC_TYPES_HEADER\
\n#define KC_TYPES_HEADER\
\n\
\n#define KIMWITUVERSIONMAJOR "), kc_current_view); }
kc::unparse(METAKIMWITUVERSIONMAJOR, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n#define KIMWITUVERSIONMINOR "), kc_current_view); }
kc::unparse(METAKIMWITUVERSIONMINOR, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n#define KIMWITUVERSIONMICRO "), kc_current_view); }
kc::unparse(METAKIMWITUVERSIONMICRO, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n\
\n#include <stdio.h>\
\n#include <stddef.h>\
\n#include <string>\
\n\
\nnamespace kc {\r\
\n\
\n#ifndef INTEGER\
\n# define INTEGER int\
\n#endif\
\n#ifndef REAL\
\n# define REAL double\
\n#endif"), kc_current_view );
kc_printer(kc_t("\
\n\
\n#ifdef KC_UNICODE\
\n\
\n#define kc_t(TEXT) L ## TEXT\
\ntypedef wchar_t kc_char_t;\
\ntypedef std::wstring kc_string_t;\
\n\
\n#if defined(_WIN32) && ! defined (__GNUC__)\
\n#define kc_strlen "), kc_current_view );
kc_printer(kc_t("wcslen\
\n#define kc_strcmp wcscmp\
\n#define kc_strcasecmp _wcsicmp\
\n#define kc_strcpy wcscpy\
\n#define kc_strncpy wcsncpy\
\n#define kc_tolower towlower\
\n#define kc_print_integer(buf,number) swp"), kc_current_view );
kc_printer(kc_t("rintf(buf,kc_t(\"%d\"),number)\
\n#define kc_print_real(buf,number) swprintf(buf,kc_t(\"%g\"),number)\
\n\
\n// needed for printdot and csgio only\
\ninline\
\nstd::string kc_to_cstring(const std::wstr"), kc_current_view );
kc_printer(kc_t("ing& s) {\
\n USES_CONVERSION;\
\n return W2CA(s.c_str());\
\n}\
\n\
\n// needed for csgio only\
\ninline\
\nstd::wstring kc_to_wstring(const std::string& s) {\
\n USES_CONVERSION;\
\n retu"), kc_current_view );
kc_printer(kc_t("rn A2CW(s.c_str());\
\n}\
\n\
\n#else // !defined(_WIN32) || defined(__GNUC__)\
\n// if you want to use UNICODE on other platforms you have to write\
\n// the following functions on your own\
\nint kc_"), kc_current_view );
kc_printer(kc_t("strlen(const kc_char_t*);\
\nint kc_strcmp(const kc_char_t*,const kc_char_t*);\
\nint kc_strcasecmp(const kc_char_t*,const kc_char_t*);\
\nint kc_strcpy(kc_char_t*,const kc_char_t*);\
\nint kc_strncpy("), kc_current_view );
kc_printer(kc_t("kc_char_t*,const kc_char_t*, int);\
\nkc_char_t kc_tolower(kc_char_t);\
\nint kc_print_integer(kc_char_t* buffer, INTEGER number );\
\nint kc_print_real(kc_char_t* buffer, REAL number);\
\n\
\n// neede"), kc_current_view );
kc_printer(kc_t("d for printdot and csgio only\
\nstd::string kc_to_cstring(const std::wstring& );\
\n// needed for csgio only\
\nstd::wstring kc_to_wstring(const std::string& );\
\n\
\n#endif\
\n\
\n#else // !KC_UNICO"), kc_current_view );
kc_printer(kc_t("DE\
\n \
\n#define kc_t(TEXT) TEXT \
\ntypedef char kc_char_t;\
\ntypedef std::string kc_string_t;\
\n\
\n#define kc_strlen strlen\
\n#define kc_strcmp strcmp\
\n#if defined(_WIN32) && ! defined (__G"), kc_current_view );
kc_printer(kc_t("NUC__)\
\n#define kc_strcasecmp _stricmp\
\n#else\
\n#define kc_strcasecmp strcasecmp\
\n#endif\
\n#define kc_strcpy strcpy\
\n#define kc_strncpy strncpy\
\n#define kc_tolower tolower \
\n#define kc_p"), kc_current_view );
kc_printer(kc_t("rint_integer(buf,number) sprintf(buf,kc_t(\"%d\"),number)\
\n#define kc_print_real(buf,number) sprintf(buf,kc_t(\"%g\"),number)\
\n#endif\
\n"), kc_current_view); }
if(!g_options.no_unparse)
{
{ kc_printer(kc_t("class uview_class;\
\ntypedef uview_class& uview;\
\ntypedef const uview_class& c_uview;\
\n\
\ntypedef class printer_functor_class& printer_functor;\
\ntypedef void (*printer_function)(const kc_char_t"), kc_current_view );
kc_printer(kc_t("*, uview);\
\n"), kc_current_view); }
}
if(!g_options.no_rewrite)
{
{ kc_printer(kc_t("\
\nclass rview_class;\
\ntypedef rview_class& rview;\
\ntypedef const rview_class& c_rview;\
\n"), kc_current_view); }
}
{ kc_printer(kc_t("\
\n\v}\
\n\
\n// Some compilers know __attribute__. Right now we test for the GNU compiler\
\n// and Intel's icc (for ia32) and ecc (for ia64).\
\n#if !defined __GNUC__ && !defined __ICC && !defined _"), kc_current_view );
kc_printer(kc_t("_ECC\
\n# define __attribute__(x)\
\n#endif\
\n\
\n// Since all definitions are in namespace kc now, there is no need\
\n// give them a kc_ prefix. Old code may still rely on the prefix, so these\
\n//"), kc_current_view );
kc_printer(kc_t(" macros are generated for backwards compatibility\
\n#ifdef KC_DEPRECATED\
\n#define kc_PhylumInfo phylum_info\
\n#define kc_OperatorInfo operator_info\
\n#define kc_last_uview "), kc_current_view );
kc_printer(kc_t(" last_uview\
\n#define kc_uviews uviews\
\n#define kc_rviews rviews\
\n#define kc_ht_reuse ht_clear\
\n#define kc_ht_clear ht_clear\
\n#define kc_"), kc_current_view );
kc_printer(kc_t("ht_assign ht_assign\
\n#define kc_ht_assigned ht_assigned\
\n"), kc_current_view); }
kc::unparse(this, kc_printer, view_gen_deprecated);
{ kc_printer(kc_t("\
\n#endif // KC_DEPRECATED\
\n\
\n// Some compilers are too stupid to detect that a function will always return\
\n// a proper value when it returns one in all branches of an if- or switch-\
\n// stat"), kc_current_view );
kc_printer(kc_t("ement (with final else or default, of course).\
\n#if !defined __GNUC__\
\n# define NORETURN throw 0;\
\n#else\
\n# define NORETURN\
\n#endif\
\n"), kc_current_view); }
kc::unparse(this, kc_printer, view_open_namespace);
{ kc_printer(kc_t("\
\n\
\n"), kc_current_view); }
}
break;
}
case view_close_namespace_enum: {
view_close_namespace_class& kc_current_view=static_cast<view_close_namespace_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("\
\n} // namespace kc\
\n"), kc_current_view); }
}
break;
}
case view_open_namespace_enum: {
view_open_namespace_class& kc_current_view=static_cast<view_open_namespace_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("\
\nnamespace kc {\r\
\n"), kc_current_view); }
}
break;
}
case view_no_of_printed_string_chars_reset_enum: {
view_no_of_printed_string_chars_reset_class& kc_current_view=static_cast<view_no_of_printed_string_chars_reset_class&>(kc_current_view_base);
{
}
break;
}
case view_printer_reset_enum: {
view_printer_reset_class& kc_current_view=static_cast<view_printer_reset_class&>(kc_current_view_base);
{
}
break;
}
case view_printer_outputfileline_enum: {
view_printer_outputfileline_class& kc_current_view=static_cast<view_printer_outputfileline_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_phylumdeclarations::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_yxx_union_h_enum: {
view_gen_yxx_union_h_class& kc_current_view=static_cast<view_gen_yxx_union_h_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_gen_classdefs_c_enum: {
view_gen_classdefs_c_class& kc_current_view=static_cast<view_gen_classdefs_c_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_gen_classdecls2_h_enum: {
view_gen_classdecls2_h_class& kc_current_view=static_cast<view_gen_classdecls2_h_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_gen_classdecls1_h_enum: {
view_gen_classdecls1_h_class& kc_current_view=static_cast<view_gen_classdecls1_h_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_gen_unparsedefs_c_enum: {
view_gen_unparsedefs_c_class& kc_current_view=static_cast<view_gen_unparsedefs_c_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_gen_rewritedefs_c_enum: {
view_gen_rewritedefs_c_class& kc_current_view=static_cast<view_gen_rewritedefs_c_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_gen_copy_attributes_c_enum: {
view_gen_copy_attributes_c_class& kc_current_view=static_cast<view_gen_copy_attributes_c_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_gen_listdefs_c_enum: {
view_gen_listdefs_c_class& kc_current_view=static_cast<view_gen_listdefs_c_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_gen_printdotdefs_c_enum: {
view_gen_printdotdefs_c_class& kc_current_view=static_cast<view_gen_printdotdefs_c_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_gen_attributeOf_function_enum: {
view_gen_attributeOf_function_class& kc_current_view=static_cast<view_gen_attributeOf_function_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_gen_operatordefs_c_enum: {
view_gen_operatordefs_c_class& kc_current_view=static_cast<view_gen_operatordefs_c_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_gen_operatorcast_h_enum: {
view_gen_operatorcast_h_class& kc_current_view=static_cast<view_gen_operatorcast_h_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_gen_operatordecls_h_enum: {
view_gen_operatordecls_h_class& kc_current_view=static_cast<view_gen_operatordecls_h_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_gen_yaccstacktype_h_enum: {
view_gen_yaccstacktype_h_class& kc_current_view=static_cast<view_gen_yaccstacktype_h_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_gen_nodetypedefs_h_enum: {
view_gen_nodetypedefs_h_class& kc_current_view=static_cast<view_gen_nodetypedefs_h_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_gen_operatormap_attributes_enum: {
view_gen_operatormap_attributes_class& kc_current_view=static_cast<view_gen_operatormap_attributes_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_gen_operatormap_subphyla_enum: {
view_gen_operatormap_subphyla_class& kc_current_view=static_cast<view_gen_operatormap_subphyla_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_gen_operatormap_c_enum: {
view_gen_operatormap_c_class& kc_current_view=static_cast<view_gen_operatormap_c_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_gen_phylummap_c_enum: {
view_gen_phylummap_c_class& kc_current_view=static_cast<view_gen_phylummap_c_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_gen_enumoperators_h_enum: {
view_gen_enumoperators_h_class& kc_current_view=static_cast<view_gen_enumoperators_h_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_gen_enumphyla_h_enum: {
view_gen_enumphyla_h_class& kc_current_view=static_cast<view_gen_enumphyla_h_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_gen_deprecated_enum: {
view_gen_deprecated_class& kc_current_view=static_cast<view_gen_deprecated_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_check_uniq_enum: {
view_check_uniq_class& kc_current_view=static_cast<view_check_uniq_class&>(kc_current_view_base);
{
const phylumdeclaration d = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(d, kc_printer, kc_current_view);
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_check_count1_enum: {
view_check_count1_class& kc_current_view=static_cast<view_check_count1_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations rpds = this->phylumdeclarations_1;
kc::unparse(rpds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
case view_check_count_enum: {
view_check_count_class& kc_current_view=static_cast<view_check_count_class&>(kc_current_view_base);
{
kc::unparse(this, kc_printer, view_check_count1);
v_freecount();
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const phylumdeclaration pd = this->phylumdeclaration_1;
const phylumdeclarations pds = this->phylumdeclarations_1;
kc::unparse(pds, kc_printer, kc_current_view);
kc::unparse(pd, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (phylumdeclarations iterator_ = this; iterator_->phylumdeclarations_1 != 0; iterator_ = iterator_->phylumdeclarations_1)
iterator_->phylumdeclaration_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_phylumdeclarations::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_yxx_union_h_enum: {
view_gen_yxx_union_h_class& kc_current_view=static_cast<view_gen_yxx_union_h_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_classdefs_c_enum: {
view_gen_classdefs_c_class& kc_current_view=static_cast<view_gen_classdefs_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_classdecls2_h_enum: {
view_gen_classdecls2_h_class& kc_current_view=static_cast<view_gen_classdecls2_h_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("\
\nabstract_phylum kc_create(enum_operators createOp"), kc_current_view); }
int j=Theargsnumbers->last()->value;
if (j<2) j=2;
for (int i = 1; i<=j; ++i)
{
{ kc_printer(kc_t(", abstract_phylum=0"), kc_current_view); }
}
{ kc_printer(kc_t(");\
\nabstract_phylum& attributeOf(abstract_phylum kc_p, int no);\
\n\n"), kc_current_view); }
}
break;
}
case view_gen_classdecls1_h_enum: {
view_gen_classdecls1_h_class& kc_current_view=static_cast<view_gen_classdecls1_h_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_unparsedefs_c_enum: {
view_gen_unparsedefs_c_class& kc_current_view=static_cast<view_gen_unparsedefs_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_rewritedefs_c_enum: {
view_gen_rewritedefs_c_class& kc_current_view=static_cast<view_gen_rewritedefs_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_copy_attributes_c_enum: {
view_gen_copy_attributes_c_class& kc_current_view=static_cast<view_gen_copy_attributes_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_listdefs_c_enum: {
view_gen_listdefs_c_class& kc_current_view=static_cast<view_gen_listdefs_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_printdotdefs_c_enum: {
view_gen_printdotdefs_c_class& kc_current_view=static_cast<view_gen_printdotdefs_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_attributeOf_function_enum: {
view_gen_attributeOf_function_class& kc_current_view=static_cast<view_gen_attributeOf_function_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_operatordefs_c_enum: {
view_gen_operatordefs_c_class& kc_current_view=static_cast<view_gen_operatordefs_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_operatorcast_h_enum: {
view_gen_operatorcast_h_class& kc_current_view=static_cast<view_gen_operatorcast_h_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_operatordecls_h_enum: {
view_gen_operatordecls_h_class& kc_current_view=static_cast<view_gen_operatordecls_h_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_yaccstacktype_h_enum: {
view_gen_yaccstacktype_h_class& kc_current_view=static_cast<view_gen_yaccstacktype_h_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_nodetypedefs_h_enum: {
view_gen_nodetypedefs_h_class& kc_current_view=static_cast<view_gen_nodetypedefs_h_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_operatormap_attributes_enum: {
view_gen_operatormap_attributes_class& kc_current_view=static_cast<view_gen_operatormap_attributes_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_operatormap_subphyla_enum: {
view_gen_operatormap_subphyla_class& kc_current_view=static_cast<view_gen_operatormap_subphyla_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_operatormap_c_enum: {
view_gen_operatormap_c_class& kc_current_view=static_cast<view_gen_operatormap_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_phylummap_c_enum: {
view_gen_phylummap_c_class& kc_current_view=static_cast<view_gen_phylummap_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_enumoperators_h_enum: {
view_gen_enumoperators_h_class& kc_current_view=static_cast<view_gen_enumoperators_h_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_enumphyla_h_enum: {
view_gen_enumphyla_h_class& kc_current_view=static_cast<view_gen_enumphyla_h_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_deprecated_enum: {
view_gen_deprecated_class& kc_current_view=static_cast<view_gen_deprecated_class&>(kc_current_view_base);
{
}
break;
}
case view_check_uniq_enum: {
view_check_uniq_class& kc_current_view=static_cast<view_check_uniq_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
fndeclarations apfd=The_abstract_phylum_decl->additional_members,
alfd=The_abstract_list_decl->additional_members;
kc::unparse(apfd, kc_printer, view_count_attrs);
if (gl_no_of_args)
{
{ kc_printer(kc_t("void kc_initialize_abstract_phylum(abstract_phylum kc_x)\
\n {\n"), kc_current_view); }
{ kc_printer(kc_t("}\n"), kc_current_view); }
}
kc::unparse(alfd, kc_printer, view_count_attrs);
if (gl_no_of_args)
{
{ kc_printer(kc_t("void kc_initialize_abstract_list(abstract_list kc_x)\
\n {\n"), kc_current_view); }
{ kc_printer(kc_t("}\n"), kc_current_view); }
}
}
break;
}
case view_check_count1_enum: {
view_check_count1_class& kc_current_view=static_cast<view_check_count1_class&>(kc_current_view_base);
{
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_phylumnames::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_uniqmap_c_1_enum: {
view_gen_uniqmap_c_1_class& kc_current_view=static_cast<view_gen_uniqmap_c_1_class&>(kc_current_view_base);
{
const ID pn = this->ID_1;
const phylumnames r_pn = this->phylumnames_1;
kc::unparse(r_pn, kc_printer, kc_current_view);
{ kc_printer(kc_t("phylum_"), kc_current_view); }
kc::unparse(pn, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (phylumnames iterator_ = this; iterator_->phylumnames_1 != 0; iterator_ = iterator_->phylumnames_1)
iterator_->ID_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_phylumnames::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_uniqmap_c_1_enum: {
view_gen_uniqmap_c_1_class& kc_current_view=static_cast<view_gen_uniqmap_c_1_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_phylumdeclaration_PhylumDeclaration::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_set_subphylumdefs_c_enum: {
view_gen_set_subphylumdefs_c_class& kc_current_view=static_cast<view_gen_set_subphylumdefs_c_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_PredefinedAlternatives)) {
} else
if ((this->productionblock_1->prod_sel() == sel_Emptyproductionblock)) {
} else
if ((this->productionblock_1->prod_sel() == sel_ListAlternatives)) {
const ID id = this->ID_1;
const ID el = phylum_cast<const impl_productionblock_ListAlternatives*>(this->productionblock_1)->ID_1;
{ kc_printer(kc_t("void impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("::set_subphylum(int no, abstract_phylum val)\
\n{\
\n abstract_phylum newval=0;\
\n switch(no) {\
\n case 0: newval = "), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t("_1 = dynamic_cast<"), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(val);break;\
\n case 1: newval = "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_1 = dynamic_cast<"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(val);break;\
\n }\
\n assertNonNull(newval);\
\n}\
\n"), kc_current_view); }
} else
if ((this->productionblock_1->prod_sel() == sel_NonlistAlternatives)) {
const ID id = this->ID_1;
const alternatives alt = phylum_cast<const impl_productionblock_NonlistAlternatives*>(this->productionblock_1)->alternatives_1;
kc::unparse(alt, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_yxx_union_h_enum: {
view_gen_yxx_union_h_class& kc_current_view=static_cast<view_gen_yxx_union_h_class&>(kc_current_view_base);
{
const ID id = this->ID_1;
{ kc_printer(kc_t(" kc::"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" as_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
}
break;
}
case view_gen_subphylumdefs_c_enum: {
view_gen_subphylumdefs_c_class& kc_current_view=static_cast<view_gen_subphylumdefs_c_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_PredefinedAlternatives)) {
} else
if ((this->productionblock_1->prod_sel() == sel_Emptyproductionblock)) {
} else
if ((this->productionblock_1->prod_sel() == sel_ListAlternatives)) {
const ID id = this->ID_1;
const ID el = phylum_cast<const impl_productionblock_ListAlternatives*>(this->productionblock_1)->ID_1;
{ kc_printer(kc_t("abstract_phylum impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("::subphylum(int no) const\
\n{\
\n switch(no){\
\n case 0: return "), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t("_1;\
\n case 1: return "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_1;\
\n }\
\n return 0;\
\n}\
\n"), kc_current_view); }
} else
if ((this->productionblock_1->prod_sel() == sel_NonlistAlternatives)) {
const ID id = this->ID_1;
const alternatives alt = phylum_cast<const impl_productionblock_NonlistAlternatives*>(this->productionblock_1)->alternatives_1;
kc::unparse(alt, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_classdefs_c_enum: {
view_gen_classdefs_c_class& kc_current_view=static_cast<view_gen_classdefs_c_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_Emptyproductionblock)) {
} else
if ((this->productionblock_1->prod_sel() == sel_ListAlternatives)) {
const ID id = this->ID_1;
const ID el = phylum_cast<const impl_productionblock_ListAlternatives*>(this->productionblock_1)->ID_1;
{ kc_printer(kc_t("const enum_phyla "), kc_current_view); }
kc::unparse(id, kc_printer, view_class_of_phy);
{ kc_printer(kc_t("::phylum_sel_ = phylum_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\n"), kc_current_view); }
kc::unparse(id, kc_printer, view_class_of_phy);
{ kc_printer(kc_t("::"), kc_current_view); }
kc::unparse(id, kc_printer, view_class_of_phy);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(" p1 , "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" p2)\
\n \v: "), kc_current_view); }
kc::unparse(additional_members, kc_printer, view_count_nonstaticmembers);
if (gl_no_of_args)
{
kc::unparse(gl_members, kc_printer, view_gen_user_assignment_inis);
{ kc_printer(kc_t(", "), kc_current_view); }
}
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t("_1(p1), "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_1(p2) { }\r\
\n"), kc_current_view); }
} else
{
const ID id = this->ID_1;
const productionblock alts = this->productionblock_1;
{ kc_printer(kc_t("const enum_phyla "), kc_current_view); }
kc::unparse(id, kc_printer, view_class_of_phy);
{ kc_printer(kc_t("::phylum_sel_ = phylum_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\n"), kc_current_view); }
gl_phylum=id;
kc::unparse(alts, kc_printer, kc_current_view);
}
break;
}
case view_gen_classdecls2_h_enum: {
view_gen_classdecls2_h_class& kc_current_view=static_cast<view_gen_classdecls2_h_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_PredefinedAlternatives) && (phylum_cast<const impl_productionblock_PredefinedAlternatives*>(this->productionblock_1)->alternatives_1->prod_sel() == sel_Consalternatives) && ((phylum_cast<const impl_productionblock_PredefinedAlternatives*>(this->productionblock_1)->alternatives_1)->alternative_1->prod_sel() == sel_Alternative)) {
const ID id = this->ID_1;
const alternatives alts = phylum_cast<const impl_productionblock_PredefinedAlternatives*>(this->productionblock_1)->alternatives_1;
const ID oid = phylum_cast<const impl_alternative_Alternative*>((phylum_cast<const impl_productionblock_PredefinedAlternatives*>(this->productionblock_1)->alternatives_1)->alternative_1)->ID_1;
const Ccode_option cco = this->Ccode_option_1;
{ kc_printer(kc_t("class impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\ntypedef impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t(" impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
kc::unparse(alts, kc_printer, kc_current_view);
} else
if ((this->productionblock_1->prod_sel() == sel_Emptyproductionblock)) {
} else
{
const phylumdeclaration ph_decl = this/**/;
const ID id = this->ID_1;
const productionblock alt = this->productionblock_1;
const Ccode_option cco = this->Ccode_option_1;
{ kc_printer(kc_t("class "), kc_current_view); }
if(g_options.dllexports!="") {
PRINT(g_options.dllexports.c_str());
PRINT(" ");
}
{ kc_printer(kc_t("impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{
baseclass_list kc_selvar_0_1 = phylum_cast<baseclass_list>(ph_decl->base_classes);
if ((kc_selvar_0_1->prod_sel() == sel_Consbaseclass_list)) {
PRINT("\b :\b ");
UNPARSE(ph_decl->base_classes);
} else
{
{
productionblock kc_selvar_1_1 = phylum_cast<productionblock>(alt);
if ((kc_selvar_1_1->prod_sel() == sel_ListAlternatives)) {
PRINT(": public impl_abstract_list");
} else
{
PRINT(": public impl_abstract_phylum");
}
}
}
}
{ kc_printer(kc_t("{\
\n\rpublic:\v\n"), kc_current_view); }
kc::unparse(additional_members, kc_printer, view_count_nonstaticmembers);
if (f_listelementphylum(id)->eq(f_emptyId()) &&
!f_constructors_in_phylumdecl(this) && gl_no_of_args!=0)
{
{ kc_printer(kc_t("explicit impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("()\v\n: "), kc_current_view); }
kc::unparse(gl_members, kc_printer, view_gen_user_assignment_inis);
{ kc_printer(kc_t(" { }\r\n"), kc_current_view); }
}
{ kc_printer(kc_t(" static const enum_phyla phylum_sel_;\n"), kc_current_view); }
if(!g_options.no_printdot)
{
{ kc_printer(kc_t(" void fprintdot( FILE*, const char*, const char*, const char*, bool, bool, bool ) const;\
\n"), kc_current_view); }
}
if(!g_options.no_rewrite && g_options.rw_loop)
{
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" rewrite(rview v) { return phylum_cast<"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(impl_abstract_phylum::rewrite(v)); }\
\n"), kc_current_view); }
}
if(g_options.smart_pointer)
{
{ kc_printer(kc_t(" abstract_phylum_ref* new_phylum_ref() {\
\n return new phylum_ref<impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(this);\
\n }\
\n impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("& operator=(const impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("& p) {\
\n phylum_ref<impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">* my_ref=static_cast<phylum_ref<impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">*>(get_ref());\
\n "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" self=this;\
\n if(my_ref) {\
\n abstract_phylum_ref* ref=p.get_ref();\
\n self=const_cast<"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(&p);\
\n if(ref)\
\n self=phylum_cast<"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(self->copy(true));\
\n my_ref->set_phylum(self);\
\n }\
\n return *self;\
\n }\
\n impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("& operator=(const phylum_ref<impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">& r) {\
\n phylum_ref<impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">* my_ref=static_cast<phylum_ref<impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">*>(get_ref());\
\n "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" self=this;\
\n if(my_ref) {\
\n self=phylum_cast<"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(r.get_phylum()?r.get_phylum()->copy(true):0);\
\n my_ref->set_phylum(self);\
\n }\
\n return *self;\
\n }\
\n\
\n impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("* return_ptr() { if(get_ref()) get_ref()->lock(); return this; }\
\n"), kc_current_view); }
}
kc::unparse(cco, kc_printer, view_gen_nodetypes_h);
kc::unparse(additional_members, kc_printer, view_gen_member_dcl_h);
kc::unparse(this, kc_printer, view_gen_listdecls_h);
{ kc_printer(kc_t("};\
\n"), kc_current_view); }
kc::unparse(alt, kc_printer, kc_current_view);
}
break;
}
case view_gen_classdecls1_h_enum: {
view_gen_classdecls1_h_class& kc_current_view=static_cast<view_gen_classdecls1_h_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_PredefinedAlternatives) && (phylum_cast<const impl_productionblock_PredefinedAlternatives*>(this->productionblock_1)->alternatives_1->prod_sel() == sel_Consalternatives) && ((phylum_cast<const impl_productionblock_PredefinedAlternatives*>(this->productionblock_1)->alternatives_1)->alternative_1->prod_sel() == sel_Alternative)) {
const ID id = this->ID_1;
const ID oid = phylum_cast<const impl_alternative_Alternative*>((phylum_cast<const impl_productionblock_PredefinedAlternatives*>(this->productionblock_1)->alternatives_1)->alternative_1)->ID_1;
{ kc_printer(kc_t("class impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
if(g_options.smart_pointer)
{
{ kc_printer(kc_t("typedef phylum_ptr<impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t("> "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_ptr;\
\n"), kc_current_view); }
}
if(g_options.weak_pointer)
{
{ kc_printer(kc_t("typedef weak_phylum_ptr<impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t("> weak_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_ptr;\
\n"), kc_current_view); }
}
} else
if ((this->productionblock_1->prod_sel() == sel_Emptyproductionblock)) {
} else
{
const ID id = this->ID_1;
{ kc_printer(kc_t("class impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
if(g_options.smart_pointer)
{
{ kc_printer(kc_t("typedef phylum_ptr<impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("> "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_ptr;\
\n"), kc_current_view); }
}
if(g_options.weak_pointer)
{
{ kc_printer(kc_t("typedef weak_phylum_ptr<impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("> weak_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_ptr;\
\n"), kc_current_view); }
}
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_PredefinedAlternatives)) {
} else
if ((this->productionblock_1->prod_sel() == sel_Emptyproductionblock)) {
} else
if ((this->productionblock_1->prod_sel() == sel_ListAlternatives)) {
alternative a = f_alternativeofoperator(gl_operator);
view_gen_unparsedefs_default_c_class vgudcL(/* is list ? */ true, kc_current_view.isOnlyDefault);
kc::unparse(a, kc_printer, vgudcL);
} else
if ((this->productionblock_1->prod_sel() == sel_NonlistAlternatives)) {
alternative a = f_alternativeofoperator(gl_operator);
kc::unparse(a, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_unparsedefs_c_enum: {
view_gen_unparsedefs_c_class& kc_current_view=static_cast<view_gen_unparsedefs_c_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_PredefinedAlternatives)) {
} else
if ((this->productionblock_1->prod_sel() == sel_Emptyproductionblock)) {
} else
{
const ID id = this->ID_1;
const productionblock pb = this->productionblock_1;
ID selvar = Id(Str(mkcasestring("this")));
dollarvarstack.push( selvar );
dollarvarextstack.push( f_emptyId() );
gl_phylum = id;
kc::unparse(pb, kc_printer, kc_current_view);
gl_phylum = 0;
dollarvarstack.pop();
dollarvarextstack.pop();
}
break;
}
case view_gen_rewritedefs_c_enum: {
view_gen_rewritedefs_c_class& kc_current_view=static_cast<view_gen_rewritedefs_c_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_Emptyproductionblock)) {
} else
if ((this->productionblock_1->prod_sel() == sel_PredefinedAlternatives)) {
const ID id = this->ID_1;
} else
{
const ID id = this->ID_1;
const productionblock pb = this->productionblock_1;
gl_phydecl = f_lookupdecl( id );
gl_phylum = id;
if ( gl_phydecl == 0 ) {
v_report(NonFatal( FileLine( gl_phylum->file, gl_phylum->line ), Problem1S1ID( "internal error: could not find declaration of phylum:", gl_phylum )));
}
kc::unparse(pb, kc_printer, kc_current_view);
gl_phydecl = 0;
gl_phylum = 0;
}
break;
}
case view_gen_copy_attributes_c_enum: {
view_gen_copy_attributes_c_class& kc_current_view=static_cast<view_gen_copy_attributes_c_class&>(kc_current_view_base);
if ((this->Ccode_option_1->prod_sel() == sel_CcodeOption) && (phylum_cast<const impl_Ccode_option_CcodeOption*>(this->Ccode_option_1)->attributes_1->prod_sel() == sel_Consattributes) && ((phylum_cast<const impl_Ccode_option_CcodeOption*>(this->Ccode_option_1)->attributes_1)->attribute_1->prod_sel() == sel_Attribute) && ((phylum_cast<const impl_Ccode_option_CcodeOption*>(this->Ccode_option_1)->attributes_1)->attributes_1->prod_sel() == sel_Nilattributes)) {
const ID id = this->ID_1;
const ID aid = phylum_cast<const impl_attribute_Attribute*>((phylum_cast<const impl_Ccode_option_CcodeOption*>(this->Ccode_option_1)->attributes_1)->attribute_1)->ID_2;
{ kc_printer(kc_t(" case phylum_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(":\v\
\n dynamic_cast<"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(kc_p2)->"), kc_current_view); }
kc::unparse(aid, kc_printer, kc_current_view);
{ kc_printer(kc_t(" = dynamic_cast<c_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(kc_p1)->"), kc_current_view); }
kc::unparse(aid, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n break;\r\n"), kc_current_view); }
} else
if ((this->Ccode_option_1->prod_sel() == sel_CcodeOption) && (phylum_cast<const impl_Ccode_option_CcodeOption*>(this->Ccode_option_1)->attributes_1->prod_sel() == sel_Nilattributes)) {
const ID id = this->ID_1;
} else
if ((this->Ccode_option_1->prod_sel() == sel_CcodeOption)) {
const ID id = this->ID_1;
const attributes a = phylum_cast<const impl_Ccode_option_CcodeOption*>(this->Ccode_option_1)->attributes_1;
{ kc_printer(kc_t(" case phylum_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(": {\
\n c_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" p1 = dynamic_cast<c_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(kc_p1);\
\n"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" p2 = dynamic_cast<"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(kc_p2);\
\n"), kc_current_view); }
kc::unparse(a, kc_printer, kc_current_view);
{ kc_printer(kc_t(" break;\
\n }\n"), kc_current_view); }
} else
goto kc_unparsing_default;
break;
}
case view_gen_listdefs_c_enum: {
view_gen_listdefs_c_class& kc_current_view=static_cast<view_gen_listdefs_c_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_ListAlternatives)) {
const ID id = this->ID_1;
const ID el = phylum_cast<const impl_productionblock_ListAlternatives*>(this->productionblock_1)->ID_1;
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\nconcat(c_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" kc_p1, c_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" kc_p2)\
\n{ return dynamic_cast<"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(kc_p1->do_concat(kc_p2, sel_Cons"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(")); }\
\n"), kc_current_view); }
covariant_choice(id, "\nimpl_", "::reverse() const", "abstract_list\nimpl_", "::reverse() const",
kc_printer, kc_current_view);
{ kc_printer(kc_t("\n{ return dynamic_cast<"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(do_reverse(Nil"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("(), sel_Cons"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(")); }\
\n\
\n"), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\nimpl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("::last() const\
\n{ return dynamic_cast<"), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(impl_abstract_list::last()); }\
\n\
\nbool\
\nimpl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("::is_nil() const\
\n{\
\n return "), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t("_1==0 && "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_1==0;\
\n}\
\n\
\n"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\nimpl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("::map("), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(" (*kc_fp)("), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t("))\
\n{ return dynamic_cast<"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Cons"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(")); }\
\n"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\nimpl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("::filter(bool (*kc_fp)("), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t("))\
\n{ return dynamic_cast<"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Cons"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(")); }\
\n\
\n"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\nimpl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("::append("), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(" new_last)\
\n{\
\n return dynamic_cast<"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(do_append(new_last, Nil"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("()));\
\n}\
\n"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\nimpl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("::merge( "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" second, "), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(" (*kc_fp)("), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t("))\
\n{\
\n return dynamic_cast<"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Cons"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("));\
\n}\
\n"), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\nimpl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("::reduce( "), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(" neutral, "), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(" (*kc_fp)("), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t("))\
\n{\
\n return dynamic_cast<"), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));\
\n}\
\n\
\n"), kc_current_view); }
} else
{
}
break;
}
case view_gen_listdecls_h_enum: {
view_gen_listdecls_h_class& kc_current_view=static_cast<view_gen_listdecls_h_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_ListAlternatives)) {
const ID id = this->ID_1;
const ID el = phylum_cast<const impl_productionblock_ListAlternatives*>(this->productionblock_1)->ID_1;
{ kc_printer(kc_t(" enum_operators prod_sel() const{\
\n return is_nil() ? sel_Nil"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(": sel_Cons"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n }\
\n explicit impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(" = 0, "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" = 0);\
\n abstract_phylum subphylum(int) const;\
\n void set_subphylum(int, abstract_phylum);\
\n friend "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" concat(c_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(", c_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(");\n"), kc_current_view); }
if (g_options.covariant=='p')
{
{ kc_printer(kc_t("#ifndef NO_COVARIANT_RETURN\n"), kc_current_view); }
}
if (g_options.covariant!='n')
{
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" reverse() const;\n"), kc_current_view); }
if(!g_options.no_rewrite && !g_options.rw_loop)
{
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" rewrite(rview);\
\n"), kc_current_view); }
}
}
if (g_options.covariant=='p')
{
{ kc_printer(kc_t("#else\n"), kc_current_view); }
}
if (g_options.covariant!='y')
{
{ kc_printer(kc_t(" abstract_list reverse() const;\
\n"), kc_current_view); }
if(!g_options.no_rewrite && !g_options.rw_loop)
{
{ kc_printer(kc_t(" abstract_phylum rewrite(rview);\
\n"), kc_current_view); }
}
}
if (g_options.covariant=='p')
{
{ kc_printer(kc_t("#endif // NO_COVARIANT_RETURN\n"), kc_current_view); }
}
if(!g_options.no_rewrite && g_options.rw_loop)
{
{ kc_printer(kc_t(" abstract_phylum do_rewrite(rview);\
\n"), kc_current_view); }
}
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(" last() const;\
\n "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" append("), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(");\
\n "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" map("), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(" (*)("), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t("));\
\n "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" filter( bool (*)("), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t("));\
\n "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" merge( "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(" (*)("), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t("));\
\n "), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(" reduce( "), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(" (*)("), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t("));\
\n bool is_nil() const;\
\n"), kc_current_view); }
if(g_options.smart_pointer)
{
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t("_ptr "), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t("_1;\
\n "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_ptr "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_1;\
\n"), kc_current_view); }
}
else
{
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t("_1;\
\n "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_1;\
\n"), kc_current_view); }
}
{ kc_printer(kc_t("\rprivate:\v\n"), kc_current_view); }
if(!g_options.no_rewrite && !g_options.rw_loop)
{
if (g_options.covariant=='p')
{
{ kc_printer(kc_t("#ifndef NO_COVARIANT_RETURN\n"), kc_current_view); }
}
if (g_options.covariant!='n')
{
{ kc_printer(kc_t(" impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("* nil_rewrite(rview);\
\n impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("* cons_rewrite(rview);\
\n"), kc_current_view); }
}
if (g_options.covariant=='p')
{
{ kc_printer(kc_t("#else\n"), kc_current_view); }
}
if (g_options.covariant!='y')
{
{ kc_printer(kc_t(" impl_abstract_phylum* nil_rewrite(rview);\
\n impl_abstract_phylum* cons_rewrite(rview);\
\n"), kc_current_view); }
}
if (g_options.covariant=='p')
{
{ kc_printer(kc_t("#endif // NO_COVARIANT_RETURN\n"), kc_current_view); }
}
}
if (!g_options.no_unparse)
{
{ kc_printer(kc_t(" void nil_do_unparse(printer_functor, uview);\
\n void do_unparse(printer_functor, uview);\
\n"), kc_current_view); }
}
} else
{
const ID id = this->ID_1;
if (g_options.covariant!='n')
{
if (g_options.covariant=='p')
{
{ kc_printer(kc_t("#ifndef NO_COVARIANT_RETURN\n"), kc_current_view); }
}
if(!g_options.no_rewrite && !g_options.rw_loop)
{
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" rewrite(rview) =0;\n"), kc_current_view); }
}
if (g_options.covariant=='p')
{
{ kc_printer(kc_t("#endif // NO_COVARIANT_RETURN\n"), kc_current_view); }
}
}
}
break;
}
case view_gen_printdotdefs_c_enum: {
view_gen_printdotdefs_c_class& kc_current_view=static_cast<view_gen_printdotdefs_c_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_Emptyproductionblock)) {
} else
if ((this->productionblock_1->prod_sel() == sel_PredefinedAlternatives)) {
const ID id = this->ID_1;
{ kc_printer(kc_t("void impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("::fprintdot(FILE *f, const char *root_label_prefix, const char *edge_label_prefix, const char *edge_attributes, bool print_node_labels, bool use_context_when_sharing_leaves, bool print_prologue_and_epi"), kc_current_view );
kc_printer(kc_t("logue) const\
\n{\
\n int kc_edge_nr = 1;\
\n kc_dotedgenode_t kc_edges = 0;\
\n if (print_prologue_and_epilogue) fprintdotprologue(f);\
\n /*if (kc_outmost)*/ kc_do_printdot_subgraph_prolo"), kc_current_view );
kc_printer(kc_t("gue(f, this, root_label_prefix, edge_attributes, print_node_labels, use_context_when_sharing_leaves);\
\n fprintdot_hashtable = new kc_dotedge_ht;\
\n do_printdot(f, true, &kc_edge_nr, &kc_edges,"), kc_current_view );
kc_printer(kc_t(" edge_label_prefix, print_node_labels, use_context_when_sharing_leaves, 0, 0);\
\n kc_do_printdot_edges(f, kc_edges, edge_attributes, use_context_when_sharing_leaves);\
\n delete fprintdot_hashta"), kc_current_view );
kc_printer(kc_t("ble;\
\n fprintdot_hashtable=0;\
\n /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(f);\
\n if (print_prologue_and_epilogue) fprintdotepilogue(f);\
\n}\
\n"), kc_current_view); }
} else
if ((this->productionblock_1->prod_sel() == sel_ListAlternatives)) {
const ID id = this->ID_1;
{ kc_printer(kc_t("void impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("::fprintdot(FILE *f, const char *root_label_prefix, const char *edge_label_prefix, const char *edge_attributes, bool print_node_labels, bool use_context_when_sharing_leaves, bool print_prologue_and_epi"), kc_current_view );
kc_printer(kc_t("logue) const\
\n{\
\n int kc_edge_nr = 1;\
\n kc_dotedgenode_t kc_edges = 0;\
\n if (print_prologue_and_epilogue) fprintdotprologue(f);\
\n /*if (kc_outmost)*/ kc_do_printdot_subgraph_prolo"), kc_current_view );
kc_printer(kc_t("gue(f, this, root_label_prefix, edge_attributes, print_node_labels, use_context_when_sharing_leaves);\
\n fprintdot_hashtable = new kc_dotedge_ht;\
\n do_printdot(f, true, &kc_edge_nr, &kc_edges,"), kc_current_view );
kc_printer(kc_t(" edge_label_prefix, print_node_labels, use_context_when_sharing_leaves, 0, 0);\
\n kc_do_printdot_edges(f, kc_edges, edge_attributes, use_context_when_sharing_leaves);\
\n delete fprintdot_hashta"), kc_current_view );
kc_printer(kc_t("ble;\
\n fprintdot_hashtable=0;\
\n /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(f);\
\n if (print_prologue_and_epilogue) fprintdotepilogue(f);\
\n}\
\n"), kc_current_view); }
} else
if ((this->productionblock_1->prod_sel() == sel_NonlistAlternatives)) {
const ID id = this->ID_1;
{ kc_printer(kc_t("void impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("::fprintdot(FILE *f, const char *root_label_prefix, const char *edge_label_prefix, const char *edge_attributes, bool print_node_labels, bool use_context_when_sharing_leaves, bool print_prologue_and_epi"), kc_current_view );
kc_printer(kc_t("logue) const\
\n{\
\n int kc_edge_nr = 1;\
\n kc_dotedgenode_t kc_edges = 0;\
\n if (print_prologue_and_epilogue) fprintdotprologue(f);\
\n /*if (kc_outmost)*/ kc_do_printdot_subgraph_prolo"), kc_current_view );
kc_printer(kc_t("gue(f, this, root_label_prefix, edge_attributes, print_node_labels, use_context_when_sharing_leaves);\
\n fprintdot_hashtable = new kc_dotedge_ht;\
\n do_printdot(f, true, &kc_edge_nr, &kc_edges,"), kc_current_view );
kc_printer(kc_t(" edge_label_prefix, print_node_labels, use_context_when_sharing_leaves, 0, 0);\
\n kc_do_printdot_edges(f, kc_edges, edge_attributes, use_context_when_sharing_leaves);\
\n delete fprintdot_hashta"), kc_current_view );
kc_printer(kc_t("ble;\
\n fprintdot_hashtable=0;\
\n /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(f);\
\n if (print_prologue_and_epilogue) fprintdotepilogue(f);\
\n}\
\n"), kc_current_view); }
} else
goto kc_unparsing_default;
break;
}
case view_gen_attributeOf_function_enum: {
view_gen_attributeOf_function_class& kc_current_view=static_cast<view_gen_attributeOf_function_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_Emptyproductionblock)) {
} else
if ((this->productionblock_1->prod_sel() == sel_ListAlternatives)) {
const ID id = this->ID_1;
const alternatives a = phylum_cast<const impl_productionblock_ListAlternatives*>(this->productionblock_1)->alternatives_1;
The_abstract_phylum_decl->additional_members->unparse(kc_printer, view_count_attrs);
int attrcount = gl_no_of_args;
arguments attrs = gl_args;
ac_identifier_list idents = gl_idents;
kc::unparse(additional_members, kc_printer, view_count_attrs);
gl_no_of_args += attrcount;
gl_args = concat(gl_args, attrs);
gl_idents = concat(gl_idents, idents);
kc::unparse(a, kc_printer, kc_current_view);
} else
if ((this->productionblock_1->prod_sel() == sel_NonlistAlternatives)) {
const ID id = this->ID_1;
const alternatives a = phylum_cast<const impl_productionblock_NonlistAlternatives*>(this->productionblock_1)->alternatives_1;
The_abstract_phylum_decl->additional_members->unparse(kc_printer, view_count_attrs);
int attrcount = gl_no_of_args;
arguments attrs = gl_args;
ac_identifier_list idents = gl_idents;
kc::unparse(additional_members, kc_printer, view_count_attrs);
gl_no_of_args += attrcount;
gl_args = concat(gl_args, attrs);
gl_idents = concat(gl_idents, idents);
kc::unparse(a, kc_printer, kc_current_view);
} else
if ((this->productionblock_1->prod_sel() == sel_PredefinedAlternatives)) {
const ID id = this->ID_1;
const alternatives a = phylum_cast<const impl_productionblock_PredefinedAlternatives*>(this->productionblock_1)->alternatives_1;
The_abstract_phylum_decl->additional_members->unparse(kc_printer, view_count_attrs);
int attrcount = gl_no_of_args;
arguments attrs = gl_args;
ac_identifier_list idents = gl_idents;
kc::unparse(additional_members, kc_printer, view_count_attrs);
gl_no_of_args += attrcount;
gl_args = concat(gl_args, attrs);
gl_idents = concat(gl_idents, idents);
kc::unparse(a, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_create_function_enum: {
view_gen_create_function_class& kc_current_view=static_cast<view_gen_create_function_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_ListAlternatives)) {
const alternatives alts = phylum_cast<const impl_productionblock_ListAlternatives*>(this->productionblock_1)->alternatives_1;
kc::unparse(alts, kc_printer, kc_current_view);
} else
if ((this->productionblock_1->prod_sel() == sel_NonlistAlternatives)) {
const alternatives alts = phylum_cast<const impl_productionblock_NonlistAlternatives*>(this->productionblock_1)->alternatives_1;
kc::unparse(alts, kc_printer, kc_current_view);
} else
if ((this->productionblock_1->prod_sel() == sel_PredefinedAlternatives)) {
} else
goto kc_unparsing_default;
break;
}
case view_gen_operatordefs_c_enum: {
view_gen_operatordefs_c_class& kc_current_view=static_cast<view_gen_operatordefs_c_class&>(kc_current_view_base);
if ((this->storageoption_1->prod_sel() == sel_NoStorageOption) && (this->productionblock_1->prod_sel() == sel_ListAlternatives)) {
const ID id = this->ID_1;
const alternatives alts = phylum_cast<const impl_productionblock_ListAlternatives*>(this->productionblock_1)->alternatives_1;
const Ccode_option cco = this->Ccode_option_1;
gl_phylum = id; gl_cco = cco;
kc::unparse(alts, kc_printer, view_gen_operatordefs_nonhash_c);
gl_phylum = 0; gl_cco = (Ccode_option)0;
} else
if ((this->storageoption_1->prod_sel() == sel_NegativeStorageOption) && (this->productionblock_1->prod_sel() == sel_ListAlternatives)) {
const ID id = this->ID_1;
const alternatives alts = phylum_cast<const impl_productionblock_ListAlternatives*>(this->productionblock_1)->alternatives_1;
const Ccode_option cco = this->Ccode_option_1;
gl_phylum = id; gl_cco = cco;
kc::unparse(alts, kc_printer, view_gen_operatordefs_nonhash_c);
gl_phylum = 0; gl_cco = (Ccode_option)0;
} else
if ((this->storageoption_1->prod_sel() == sel_NoStorageOption) && (this->productionblock_1->prod_sel() == sel_NonlistAlternatives)) {
const ID id = this->ID_1;
const alternatives alts = phylum_cast<const impl_productionblock_NonlistAlternatives*>(this->productionblock_1)->alternatives_1;
const Ccode_option cco = this->Ccode_option_1;
gl_phylum = id; gl_cco = cco;
kc::unparse(alts, kc_printer, view_gen_operatordefs_nonhash_c);
gl_phylum = 0; gl_cco = (Ccode_option)0;
} else
if ((this->storageoption_1->prod_sel() == sel_NegativeStorageOption) && (this->productionblock_1->prod_sel() == sel_NonlistAlternatives)) {
const ID id = this->ID_1;
const alternatives alts = phylum_cast<const impl_productionblock_NonlistAlternatives*>(this->productionblock_1)->alternatives_1;
const Ccode_option cco = this->Ccode_option_1;
gl_phylum = id; gl_cco = cco;
kc::unparse(alts, kc_printer, view_gen_operatordefs_nonhash_c);
gl_phylum = 0; gl_cco = (Ccode_option)0;
} else
if ((this->storageoption_1->prod_sel() == sel_PositiveStorageOption) && (this->productionblock_1->prod_sel() == sel_ListAlternatives)) {
const ID id = this->ID_1;
const ID sto = phylum_cast<const impl_storageoption_PositiveStorageOption*>(this->storageoption_1)->ID_1;
const alternatives alts = phylum_cast<const impl_productionblock_ListAlternatives*>(this->productionblock_1)->alternatives_1;
const Ccode_option cco = this->Ccode_option_1;
gl_phylum = id; gl_cco = cco; gl_sto = sto;
kc::unparse(alts, kc_printer, view_gen_operatordefs_hash_c);
gl_phylum = 0; gl_cco = (Ccode_option)0; gl_sto = 0;
} else
if ((this->storageoption_1->prod_sel() == sel_PositiveStorageOption) && (this->productionblock_1->prod_sel() == sel_NonlistAlternatives)) {
const ID id = this->ID_1;
const ID sto = phylum_cast<const impl_storageoption_PositiveStorageOption*>(this->storageoption_1)->ID_1;
const alternatives alts = phylum_cast<const impl_productionblock_NonlistAlternatives*>(this->productionblock_1)->alternatives_1;
const Ccode_option cco = this->Ccode_option_1;
gl_phylum = id; gl_cco = cco; gl_sto = sto;
kc::unparse(alts, kc_printer, view_gen_operatordefs_hash_c);
gl_phylum = 0; gl_cco = (Ccode_option)0; gl_sto = 0;
} else
if ((this->productionblock_1->prod_sel() == sel_Emptyproductionblock)) {
} else
if ((this->productionblock_1->prod_sel() == sel_PredefinedAlternatives)) {
} else
goto kc_unparsing_default;
break;
}
case view_gen_operatorcast_h_enum: {
view_gen_operatorcast_h_class& kc_current_view=static_cast<view_gen_operatorcast_h_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_Emptyproductionblock)) {
} else
if ((this->productionblock_1->prod_sel() == sel_ListAlternatives)) {
const ID id = this->ID_1;
const ID el = phylum_cast<const impl_productionblock_ListAlternatives*>(this->productionblock_1)->ID_1;
{ kc_printer(kc_t("//"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" Nil"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("();\
\n //"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" Cons"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(","), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(");\
\n"), kc_current_view); }
} else
if ((this->productionblock_1->prod_sel() == sel_NonlistAlternatives)) {
const alternatives a = phylum_cast<const impl_productionblock_NonlistAlternatives*>(this->productionblock_1)->alternatives_1;
kc::unparse(a, kc_printer, kc_current_view);
} else
if ((this->productionblock_1->prod_sel() == sel_PredefinedAlternatives)) {
} else
goto kc_unparsing_default;
break;
}
case view_gen_operatordecls_h_enum: {
view_gen_operatordecls_h_class& kc_current_view=static_cast<view_gen_operatordecls_h_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_Emptyproductionblock)) {
} else
if ((this->productionblock_1->prod_sel() == sel_ListAlternatives)) {
const ID id = this->ID_1;
const ID el = phylum_cast<const impl_productionblock_ListAlternatives*>(this->productionblock_1)->ID_1;
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" Nil"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("();\
\n "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" Cons"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(","), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(");\
\n"), kc_current_view); }
} else
if ((this->productionblock_1->prod_sel() == sel_NonlistAlternatives)) {
const alternatives a = phylum_cast<const impl_productionblock_NonlistAlternatives*>(this->productionblock_1)->alternatives_1;
kc::unparse(a, kc_printer, kc_current_view);
} else
if ((this->productionblock_1->prod_sel() == sel_PredefinedAlternatives)) {
} else
goto kc_unparsing_default;
break;
}
case view_gen_yaccstacktype_h_enum: {
view_gen_yaccstacktype_h_class& kc_current_view=static_cast<view_gen_yaccstacktype_h_class&>(kc_current_view_base);
{
const ID id = this->ID_1;
{ kc_printer(kc_t(" kc::"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" yt_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
}
break;
}
case view_gen_nodetypedefs_h_enum: {
view_gen_nodetypedefs_h_class& kc_current_view=static_cast<view_gen_nodetypedefs_h_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_PredefinedAlternatives) && (phylum_cast<const impl_productionblock_PredefinedAlternatives*>(this->productionblock_1)->alternatives_1->prod_sel() == sel_Consalternatives) && ((phylum_cast<const impl_productionblock_PredefinedAlternatives*>(this->productionblock_1)->alternatives_1)->alternative_1->prod_sel() == sel_Alternative)) {
const ID id = this->ID_1;
const ID oid = phylum_cast<const impl_alternative_Alternative*>((phylum_cast<const impl_productionblock_PredefinedAlternatives*>(this->productionblock_1)->alternatives_1)->alternative_1)->ID_1;
{ kc_printer(kc_t("typedef impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t(" *"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\ntypedef const impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t(" *c_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
} else
if ((this->productionblock_1->prod_sel() == sel_Emptyproductionblock)) {
} else
{
const ID id = this->ID_1;
{ kc_printer(kc_t("typedef impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" *"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\ntypedef const impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" *c_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
}
break;
}
case view_gen_operatormap_attributes_enum: {
view_gen_operatormap_attributes_class& kc_current_view=static_cast<view_gen_operatormap_attributes_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_Emptyproductionblock)) {
} else
if ((this->productionblock_1->prod_sel() == sel_ListAlternatives)) {
const ID id = this->ID_1;
const alternatives a = phylum_cast<const impl_productionblock_ListAlternatives*>(this->productionblock_1)->alternatives_1;
The_abstract_phylum_decl->additional_members->unparse(kc_printer, view_count_attrs);
int attrcount = gl_no_of_args;
arguments attrs = gl_args;
ac_identifier_list idents = gl_idents;
kc::unparse(additional_members, kc_printer, view_count_attrs);
gl_no_of_args += attrcount;
gl_args = concat(gl_args, attrs);
gl_idents = concat(gl_idents, idents);
kc::unparse(a, kc_printer, kc_current_view);
} else
if ((this->productionblock_1->prod_sel() == sel_NonlistAlternatives)) {
const ID id = this->ID_1;
const alternatives a = phylum_cast<const impl_productionblock_NonlistAlternatives*>(this->productionblock_1)->alternatives_1;
The_abstract_phylum_decl->additional_members->unparse(kc_printer, view_count_attrs);
int attrcount = gl_no_of_args;
arguments attrs = gl_args;
ac_identifier_list idents = gl_idents;
kc::unparse(additional_members, kc_printer, view_count_attrs);
gl_no_of_args += attrcount;
gl_args = concat(gl_args, attrs);
gl_idents = concat(gl_idents, idents);
kc::unparse(a, kc_printer, kc_current_view);
} else
if ((this->productionblock_1->prod_sel() == sel_PredefinedAlternatives)) {
const ID id = this->ID_1;
const alternatives a = phylum_cast<const impl_productionblock_PredefinedAlternatives*>(this->productionblock_1)->alternatives_1;
The_abstract_phylum_decl->additional_members->unparse(kc_printer, view_count_attrs);
int attrcount = gl_no_of_args;
arguments attrs = gl_args;
ac_identifier_list idents = gl_idents;
kc::unparse(additional_members, kc_printer, view_count_attrs);
gl_no_of_args += attrcount;
gl_args = concat(gl_args, attrs);
gl_idents = concat(gl_idents, idents);
kc::unparse(a, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_operatormap_subphyla_enum: {
view_gen_operatormap_subphyla_class& kc_current_view=static_cast<view_gen_operatormap_subphyla_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_Emptyproductionblock)) {
} else
if ((this->productionblock_1->prod_sel() == sel_ListAlternatives)) {
const alternatives a = phylum_cast<const impl_productionblock_ListAlternatives*>(this->productionblock_1)->alternatives_1;
kc::unparse(a, kc_printer, kc_current_view);
} else
if ((this->productionblock_1->prod_sel() == sel_NonlistAlternatives)) {
const alternatives a = phylum_cast<const impl_productionblock_NonlistAlternatives*>(this->productionblock_1)->alternatives_1;
kc::unparse(a, kc_printer, kc_current_view);
} else
if ((this->productionblock_1->prod_sel() == sel_PredefinedAlternatives)) {
const alternatives a = phylum_cast<const impl_productionblock_PredefinedAlternatives*>(this->productionblock_1)->alternatives_1;
kc::unparse(a, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_operatormap_c_enum: {
view_gen_operatormap_c_class& kc_current_view=static_cast<view_gen_operatormap_c_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_Emptyproductionblock)) {
} else
if ((this->productionblock_1->prod_sel() == sel_ListAlternatives)) {
const ID id = this->ID_1;
const storageoption st_opt = this->storageoption_1;
const alternatives a = phylum_cast<const impl_productionblock_ListAlternatives*>(this->productionblock_1)->alternatives_1;
const Ccode_option cco = this->Ccode_option_1;
gl_phylum = id; gl_storageoption = st_opt; gl_atomicity = false;
kc::unparse(a, kc_printer, kc_current_view);
gl_phylum = 0; gl_storageoption = 0;
} else
if ((this->productionblock_1->prod_sel() == sel_NonlistAlternatives)) {
const ID id = this->ID_1;
const storageoption st_opt = this->storageoption_1;
const alternatives a = phylum_cast<const impl_productionblock_NonlistAlternatives*>(this->productionblock_1)->alternatives_1;
const Ccode_option cco = this->Ccode_option_1;
gl_phylum = id; gl_storageoption = st_opt; gl_atomicity = false;
kc::unparse(a, kc_printer, kc_current_view);
gl_phylum = 0; gl_storageoption = 0;
} else
if ((this->productionblock_1->prod_sel() == sel_PredefinedAlternatives)) {
const ID id = this->ID_1;
const storageoption st_opt = this->storageoption_1;
const alternatives a = phylum_cast<const impl_productionblock_PredefinedAlternatives*>(this->productionblock_1)->alternatives_1;
const Ccode_option cco = this->Ccode_option_1;
gl_phylum = id; gl_storageoption = st_opt; gl_atomicity = true;
kc::unparse(a, kc_printer, kc_current_view);
gl_phylum = 0; gl_storageoption = 0;
} else
goto kc_unparsing_default;
break;
}
case view_gen_phylummap_c_enum: {
view_gen_phylummap_c_class& kc_current_view=static_cast<view_gen_phylummap_c_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_ListAlternatives)) {
const ID id = this->ID_1;
const storageoption st_opt = this->storageoption_1;
const productionblock pb = this->productionblock_1;
const Ccode_option cco = this->Ccode_option_1;
gl_phylum = id;
{ kc_printer(kc_t(" { \""), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("\", "), kc_current_view); }
kc::unparse(pb, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
kc::unparse(st_opt, kc_printer, kc_current_view);
{ kc_printer(kc_t(" },\
\n"), kc_current_view); }
gl_phylum = 0;
} else
{
const ID id = this->ID_1;
const storageoption st_opt = this->storageoption_1;
const productionblock pb = this->productionblock_1;
const Ccode_option cco = this->Ccode_option_1;
gl_phylum = id;
{ kc_printer(kc_t(" { \""), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("\", "), kc_current_view); }
kc::unparse(pb, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
kc::unparse(st_opt, kc_printer, kc_current_view);
{ kc_printer(kc_t(" },\
\n"), kc_current_view); }
gl_phylum = 0;
}
break;
}
case view_gen_enumoperators_h_enum: {
view_gen_enumoperators_h_class& kc_current_view=static_cast<view_gen_enumoperators_h_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_Emptyproductionblock)) {
} else
if ((this->productionblock_1->prod_sel() == sel_ListAlternatives)) {
const alternatives a = phylum_cast<const impl_productionblock_ListAlternatives*>(this->productionblock_1)->alternatives_1;
kc::unparse(a, kc_printer, kc_current_view);
} else
if ((this->productionblock_1->prod_sel() == sel_NonlistAlternatives)) {
const alternatives a = phylum_cast<const impl_productionblock_NonlistAlternatives*>(this->productionblock_1)->alternatives_1;
kc::unparse(a, kc_printer, kc_current_view);
} else
if ((this->productionblock_1->prod_sel() == sel_PredefinedAlternatives)) {
const alternatives a = phylum_cast<const impl_productionblock_PredefinedAlternatives*>(this->productionblock_1)->alternatives_1;
kc::unparse(a, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_enumphyla_h_enum: {
view_gen_enumphyla_h_class& kc_current_view=static_cast<view_gen_enumphyla_h_class&>(kc_current_view_base);
{
const ID id = this->ID_1;
const productionblock productions = this->productionblock_1;
{ kc_printer(kc_t(" phylum_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" = "), kc_current_view); }
kc::unparse(g_no_of_phyla, kc_printer, kc_current_view);
{ kc_printer(kc_t(",\
\n"), kc_current_view); }
g_no_of_phyla++;
}
break;
}
case view_gen_deprecated_enum: {
view_gen_deprecated_class& kc_current_view=static_cast<view_gen_deprecated_class&>(kc_current_view_base);
{
const ID id = this->ID_1;
const productionblock productions = this->productionblock_1;
{ kc_printer(kc_t("#define kc_phylum_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" phylum_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n"), kc_current_view); }
gl_phylum = id;
kc::unparse(productions, kc_printer, kc_current_view);
}
break;
}
case view_check_uniq2_enum: {
view_check_uniq2_class& kc_current_view=static_cast<view_check_uniq2_class&>(kc_current_view_base);
if ((this->storageoption_1->prod_sel() == sel_PositiveStorageOption) && (this->productionblock_1->prod_sel() == sel_Emptyproductionblock)) {
} else
if ((this->storageoption_1->prod_sel() == sel_PositiveStorageOption) && (this->productionblock_1->prod_sel() == sel_ListAlternatives)) {
} else
if ((this->storageoption_1->prod_sel() == sel_PositiveStorageOption) && (this->productionblock_1->prod_sel() == sel_NonlistAlternatives)) {
} else
if ((this->storageoption_1->prod_sel() == sel_PositiveStorageOption) && (this->productionblock_1->prod_sel() == sel_PredefinedAlternatives)) {
} else
if ((this->productionblock_1->prod_sel() == sel_Emptyproductionblock)) {
} else
if ((this->productionblock_1->prod_sel() == sel_ListAlternatives)) {
const ID id = this->ID_1;
if (! this->marked)
{
v_report(NonFatal( FileLine( cl_storageID->file, cl_storageID->line ),
Problem1S1ID1S1ID( "'uniq' declared phylum:", cl_uniqueID,
"has non 'uniq' (transitive) subterm:", id) ));
(this)->marked = 1;
kc::unparse(this, kc_printer, view_check_uniq1);
}
} else
if ((this->productionblock_1->prod_sel() == sel_NonlistAlternatives)) {
const ID id = this->ID_1;
if (! this->marked)
{
v_report(NonFatal( FileLine( cl_storageID->file, cl_storageID->line ),
Problem1S1ID1S1ID( "'uniq' declared phylum:", cl_uniqueID,
"has non 'uniq' (transitive) subterm:", id) ));
(this)->marked = 1;
kc::unparse(this, kc_printer, view_check_uniq1);
}
} else
if ((this->productionblock_1->prod_sel() == sel_PredefinedAlternatives)) {
} else
goto kc_unparsing_default;
break;
}
case view_check_uniq1_enum: {
view_check_uniq1_class& kc_current_view=static_cast<view_check_uniq1_class&>(kc_current_view_base);
{
const productionblock pb = this->productionblock_1;
kc::unparse(pb, kc_printer, kc_current_view);
}
break;
}
case view_check_uniq_enum: {
view_check_uniq_class& kc_current_view=static_cast<view_check_uniq_class&>(kc_current_view_base);
if ((this->storageoption_1->prod_sel() == sel_NoStorageOption)) {
const productionblock pb = this->productionblock_1;
kc::unparse(pb, kc_printer, kc_current_view);
} else
if ((this->storageoption_1->prod_sel() == sel_NegativeStorageOption)) {
} else
if ((this->storageoption_1->prod_sel() == sel_PositiveStorageOption)) {
const ID id = this->ID_1;
const ID s_id = phylum_cast<const impl_storageoption_PositiveStorageOption*>(this->storageoption_1)->ID_1;
const productionblock pb = this->productionblock_1;
this->marked = 1;
cl_uniqueID = id;
cl_storageID = s_id;
kc::unparse(pb, kc_printer, view_check_uniq1);
v_reset_phylumdeclaration_marks();
cl_uniqueID = 0;
cl_storageID = 0;
} else
goto kc_unparsing_default;
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_Emptyproductionblock)) {
} else
if ((this->productionblock_1->prod_sel() == sel_PredefinedAlternatives)) {
} else
if ((this->productionblock_1->prod_sel() == sel_ListAlternatives)) {
const ID id = this->ID_1;
const productionblock a = this->productionblock_1;
const Ccode_option cco = this->Ccode_option_1;
if (f_something_to_initialize( cco ))
{
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" kc_initialize_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" kc_x)\
\n{\
\n"), kc_current_view); }
kc::unparse(cco, kc_printer, kc_current_view);
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t(" return kc_x;\
\n}\
\n\
\n"), kc_current_view); }
}
kc::unparse(a, kc_printer, kc_current_view);
} else
if ((this->productionblock_1->prod_sel() == sel_NonlistAlternatives)) {
const ID id = this->ID_1;
const productionblock a = this->productionblock_1;
const Ccode_option cco = this->Ccode_option_1;
if (f_something_to_initialize( cco ))
{
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" kc_initialize_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" kc_x)\
\n{\
\n"), kc_current_view); }
kc::unparse(cco, kc_printer, kc_current_view);
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t(" return kc_x;\
\n}\
\n\
\n"), kc_current_view); }
}
kc::unparse(a, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_check_count1_enum: {
view_check_count1_class& kc_current_view=static_cast<view_check_count1_class&>(kc_current_view_base);
if ((this->productionblock_1->prod_sel() == sel_Emptyproductionblock)) {
const ID id = this->ID_1;
const storageoption stopt = this->storageoption_1;
gl_phylum = id;
kc::unparse(stopt, kc_printer, kc_current_view);
gl_phylum = 0;
v_report(NonFatal( NoFileLine(),
Problem1S1ID( "no operators defined for phylum", id )));
} else
{
const ID id = this->ID_1;
const storageoption stopt = this->storageoption_1;
const productionblock pb = this->productionblock_1;
gl_phylum = id;
kc::unparse(stopt, kc_printer, kc_current_view);
gl_phylum = 0;
kc::unparse(pb, kc_printer, kc_current_view);
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const ID i = this->ID_1;
const Ccode_option cco = this->Ccode_option_1;
outmostoperators.push( Niloperators() );
dollarvarsallowed.push( DVAllowed() );
phylumstack.push( i );
kc::unparse(cco, kc_printer, kc_current_view);
outmostoperators.top()->freelist();
outmostoperators.pop();
dollarvarsallowed.pop();
phylumstack.pop();
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_storageoption_PositiveStorageOption::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_phylummap_c_enum: {
view_gen_phylummap_c_class& kc_current_view=static_cast<view_gen_phylummap_c_class&>(kc_current_view_base);
{
const ID sc = this->ID_1;
kc::unparse(sc, kc_printer, kc_current_view);
}
break;
}
case view_check_count1_enum: {
view_check_count1_class& kc_current_view=static_cast<view_check_count1_class&>(kc_current_view_base);
{
const ID sc = this->ID_1;
if (pg_storageclasseshavebeendefined)
f_useoccurstorageclass( sc );
else v_extendoccur( sc, ITStorageClass() );
v_add_to_storageclasses( sc, gl_phylum );
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const ID id = this->ID_1;
{ kc_printer(kc_t("{ "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" } at "), kc_current_view); }
kc::unparse(id->file, kc_printer, kc_current_view);
{ kc_printer(kc_t(":"), kc_current_view); }
kc::unparse(id->line, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_storageoption_NegativeStorageOption::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_phylummap_c_enum: {
view_gen_phylummap_c_class& kc_current_view=static_cast<view_gen_phylummap_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("kc_not_uniq"), kc_current_view); }
}
break;
}
case view_check_count1_enum: {
view_check_count1_class& kc_current_view=static_cast<view_check_count1_class&>(kc_current_view_base);
{
const ID sc = this->ID_1;
if (pg_storageclasseshavebeendefined)
f_useoccurstorageclass( sc );
else v_extendoccur( sc, ITStorageClass() );
v_add_to_storageclasses( sc, gl_phylum );
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const ID id = this->ID_1;
{ kc_printer(kc_t("{! "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" } at "), kc_current_view); }
kc::unparse(id->file, kc_printer, kc_current_view);
{ kc_printer(kc_t(":"), kc_current_view); }
kc::unparse(id->line, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_storageoption_NoStorageOption::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_phylummap_c_enum: {
view_gen_phylummap_c_class& kc_current_view=static_cast<view_gen_phylummap_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("kc_not_uniq"), kc_current_view); }
}
break;
}
case view_check_count1_enum: {
view_check_count1_class& kc_current_view=static_cast<view_check_count1_class&>(kc_current_view_base);
{
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_storageclasses::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_operatordefs_c_2_enum: {
view_gen_operatordefs_c_2_class& kc_current_view=static_cast<view_gen_operatordefs_c_2_class&>(kc_current_view_base);
{
const ID sc = this->ID_1;
const storageclasses r_sc = this->storageclasses_1;
kc::unparse(r_sc, kc_printer, kc_current_view);
{ kc_printer(kc_t("&"), kc_current_view); }
kc::unparse(sc, kc_printer, kc_current_view);
{ kc_printer(kc_t("_static_hashtable,\
\n"), kc_current_view); }
}
break;
}
case view_gen_operatordefs_c_1_enum: {
view_gen_operatordefs_c_1_class& kc_current_view=static_cast<view_gen_operatordefs_c_1_class&>(kc_current_view_base);
if ((this->storageclasses_1->prod_sel() == sel_Nilstorageclasses)) {
{ kc_printer(kc_t("true"), kc_current_view); }
} else
{
const storageclasses r_sc = this->storageclasses_1;
kc::unparse(r_sc, kc_printer, kc_current_view);
{ kc_printer(kc_t(", true"), kc_current_view); }
}
break;
}
case view_gen_operatordefs_c_0_enum: {
view_gen_operatordefs_c_0_class& kc_current_view=static_cast<view_gen_operatordefs_c_0_class&>(kc_current_view_base);
{
const ID sc = this->ID_1;
const storageclasses r_sc = this->storageclasses_1;
kc::unparse(r_sc, kc_printer, kc_current_view);
{ kc_printer(kc_t("static hashtable_struct_t "), kc_current_view); }
kc::unparse(sc, kc_printer, kc_current_view);
{ kc_printer(kc_t("_static_hashtable;\
\n"), kc_current_view); }
}
break;
}
case view_gen_operatordefs_c_enum: {
view_gen_operatordefs_c_class& kc_current_view=static_cast<view_gen_operatordefs_c_class&>(kc_current_view_base);
if ((this->storageclasses_1->prod_sel() == sel_Nilstorageclasses)) {
const ID sc = this->ID_1;
{ kc_printer(kc_t("\""), kc_current_view); }
kc::unparse(sc, kc_printer, kc_current_view);
{ kc_printer(kc_t("\""), kc_current_view); }
} else
{
const ID sc = this->ID_1;
const storageclasses r_sc = this->storageclasses_1;
kc::unparse(r_sc, kc_printer, kc_current_view);
{ kc_printer(kc_t(", \""), kc_current_view); }
kc::unparse(sc, kc_printer, kc_current_view);
{ kc_printer(kc_t("\""), kc_current_view); }
}
break;
}
case view_gen_uniqmap_c_2_enum: {
view_gen_uniqmap_c_2_class& kc_current_view=static_cast<view_gen_uniqmap_c_2_class&>(kc_current_view_base);
if ((this->storageclasses_1->prod_sel() == sel_Nilstorageclasses)) {
const ID sc = this->ID_1;
if (this->phyla->length() > 0)
{
{ kc_printer(kc_t(" phylumstorageclass_"), kc_current_view); }
kc::unparse(sc, kc_printer, kc_current_view);
}
else
{
{ kc_printer(kc_t(" (KC_UNIQ_INFO)0"), kc_current_view); }
}
} else
{
const ID sc = this->ID_1;
const storageclasses r_sc = this->storageclasses_1;
kc::unparse(r_sc, kc_printer, kc_current_view);
if (this->phyla->length() > 0)
{
{ kc_printer(kc_t(",\
\n phylumstorageclass_"), kc_current_view); }
kc::unparse(sc, kc_printer, kc_current_view);
}
else
{
{ kc_printer(kc_t(",\
\n (KC_UNIQ_INFO)0"), kc_current_view); }
}
}
break;
}
case view_gen_uniqmap_c_1_enum: {
view_gen_uniqmap_c_1_class& kc_current_view=static_cast<view_gen_uniqmap_c_1_class&>(kc_current_view_base);
{
const ID sc = this->ID_1;
const storageclasses r_sc = this->storageclasses_1;
kc::unparse(r_sc, kc_printer, kc_current_view);
if (this->phyla->length() > 0)
{
{ kc_printer(kc_t("static enum_phyla phylumstorageclass_"), kc_current_view); }
kc::unparse(sc, kc_printer, kc_current_view);
{ kc_printer(kc_t("[] = { one_before_first_phylum, "), kc_current_view); }
kc::unparse(this->phyla, kc_printer, kc_current_view);
{ kc_printer(kc_t("last_phylum };\
\n"), kc_current_view); }
}
}
break;
}
case view_gen_uniqmap_c_enum: {
view_gen_uniqmap_c_class& kc_current_view=static_cast<view_gen_uniqmap_c_class&>(kc_current_view_base);
{
kc::unparse(this, kc_printer, view_gen_uniqmap_c_1);
{ kc_printer(kc_t("\
\nKC_UNIQ_INFO kc_UniqInfo[] = {\
\n"), kc_current_view); }
kc::unparse(this, kc_printer, view_gen_uniqmap_c_2);
{ kc_printer(kc_t("\
\n};\
\n"), kc_current_view); }
}
break;
}
case view_gen_operatormap_type_h_enum: {
view_gen_operatormap_type_h_class& kc_current_view=static_cast<view_gen_operatormap_type_h_class&>(kc_current_view_base);
if ((this->storageclasses_1->prod_sel() == sel_Nilstorageclasses)) {
const ID sc = this->ID_1;
kc::unparse(sc, kc_printer, kc_current_view);
} else
{
const ID sc = this->ID_1;
const storageclasses r_sc = this->storageclasses_1;
kc::unparse(r_sc, kc_printer, kc_current_view);
{ kc_printer(kc_t(",\
\n "), kc_current_view); }
kc::unparse(sc, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (storageclasses iterator_ = this; iterator_->storageclasses_1 != 0; iterator_ = iterator_->storageclasses_1)
iterator_->ID_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_storageclasses::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_operatordefs_c_2_enum: {
view_gen_operatordefs_c_2_class& kc_current_view=static_cast<view_gen_operatordefs_c_2_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_operatordefs_c_1_enum: {
view_gen_operatordefs_c_1_class& kc_current_view=static_cast<view_gen_operatordefs_c_1_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_operatordefs_c_0_enum: {
view_gen_operatordefs_c_0_class& kc_current_view=static_cast<view_gen_operatordefs_c_0_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_operatordefs_c_enum: {
view_gen_operatordefs_c_class& kc_current_view=static_cast<view_gen_operatordefs_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_uniqmap_c_2_enum: {
view_gen_uniqmap_c_2_class& kc_current_view=static_cast<view_gen_uniqmap_c_2_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_uniqmap_c_1_enum: {
view_gen_uniqmap_c_1_class& kc_current_view=static_cast<view_gen_uniqmap_c_1_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_uniqmap_c_enum: {
view_gen_uniqmap_c_class& kc_current_view=static_cast<view_gen_uniqmap_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_operatormap_type_h_enum: {
view_gen_operatormap_type_h_class& kc_current_view=static_cast<view_gen_operatormap_type_h_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_productionblock_PredefinedAlternatives::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_unparsedefs_c_enum: {
view_gen_unparsedefs_c_class& kc_current_view=static_cast<view_gen_unparsedefs_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_phylummap_c_enum: {
view_gen_phylummap_c_class& kc_current_view=static_cast<view_gen_phylummap_c_class&>(kc_current_view_base);
if ((this->alternatives_1->prod_sel() == sel_Consalternatives) && ((this->alternatives_1)->alternative_1->prod_sel() == sel_Alternative) && ((this->alternatives_1)->alternatives_1->prod_sel() == sel_Nilalternatives)) {
const ID oid = phylum_cast<const impl_alternative_Alternative*>((this->alternatives_1)->alternative_1)->ID_1;
{ kc_printer(kc_t("sel_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t(", sel_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
} else
if ((this->alternatives_1->prod_sel() == sel_Consalternatives) && ((this->alternatives_1)->alternative_1->prod_sel() == sel_Alternative)) {
const ID oid = phylum_cast<const impl_alternative_Alternative*>((this->alternatives_1)->alternative_1)->ID_1;
const alternatives ra = (this->alternatives_1)->alternatives_1;
{ kc_printer(kc_t("sel_"), kc_current_view); }
kc::unparse(ra, kc_printer, kc_current_view);
{ kc_printer(kc_t(", sel_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_deprecated_enum: {
view_gen_deprecated_class& kc_current_view=static_cast<view_gen_deprecated_class&>(kc_current_view_base);
{
const alternatives a = this->alternatives_1;
kc::unparse(a, kc_printer, kc_current_view);
}
break;
}
case view_check_uniq1_enum: {
view_check_uniq1_class& kc_current_view=static_cast<view_check_uniq1_class&>(kc_current_view_base);
{
const alternatives alt = this->alternatives_1;
kc::unparse(alt, kc_printer, kc_current_view);
}
break;
}
case view_check_count1_enum: {
view_check_count1_class& kc_current_view=static_cast<view_check_count1_class&>(kc_current_view_base);
{
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_productionblock_NonlistAlternatives::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_classdefs_c_enum: {
view_gen_classdefs_c_class& kc_current_view=static_cast<view_gen_classdefs_c_class&>(kc_current_view_base);
{
const alternatives alts = this->alternatives_1;
kc::unparse(alts, kc_printer, kc_current_view);
}
break;
}
case view_gen_classdecls2_h_enum: {
view_gen_classdecls2_h_class& kc_current_view=static_cast<view_gen_classdecls2_h_class&>(kc_current_view_base);
{
const alternatives alts = this->alternatives_1;
kc::unparse(alts, kc_printer, kc_current_view);
}
break;
}
case view_gen_unparsedefs_c_enum: {
view_gen_unparsedefs_c_class& kc_current_view=static_cast<view_gen_unparsedefs_c_class&>(kc_current_view_base);
{
const alternatives a = this->alternatives_1;
kc::unparse(a, kc_printer, kc_current_view);
}
break;
}
case view_gen_rewritedefs_c_enum: {
view_gen_rewritedefs_c_class& kc_current_view=static_cast<view_gen_rewritedefs_c_class&>(kc_current_view_base);
{
const alternatives a = this->alternatives_1;
kc::unparse(a, kc_printer, kc_current_view);
}
break;
}
case view_gen_phylummap_c_enum: {
view_gen_phylummap_c_class& kc_current_view=static_cast<view_gen_phylummap_c_class&>(kc_current_view_base);
if ((this->alternatives_1->prod_sel() == sel_Consalternatives) && ((this->alternatives_1)->alternative_1->prod_sel() == sel_Alternative) && ((this->alternatives_1)->alternatives_1->prod_sel() == sel_Nilalternatives)) {
const ID oid = phylum_cast<const impl_alternative_Alternative*>((this->alternatives_1)->alternative_1)->ID_1;
{ kc_printer(kc_t("sel_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t(", sel_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
} else
if ((this->alternatives_1->prod_sel() == sel_Consalternatives) && ((this->alternatives_1)->alternative_1->prod_sel() == sel_Alternative)) {
const ID oid = phylum_cast<const impl_alternative_Alternative*>((this->alternatives_1)->alternative_1)->ID_1;
const alternatives ra = (this->alternatives_1)->alternatives_1;
{ kc_printer(kc_t("sel_"), kc_current_view); }
kc::unparse(ra, kc_printer, kc_current_view);
{ kc_printer(kc_t(", sel_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_deprecated_enum: {
view_gen_deprecated_class& kc_current_view=static_cast<view_gen_deprecated_class&>(kc_current_view_base);
{
const alternatives a = this->alternatives_1;
kc::unparse(a, kc_printer, kc_current_view);
}
break;
}
case view_check_uniq1_enum: {
view_check_uniq1_class& kc_current_view=static_cast<view_check_uniq1_class&>(kc_current_view_base);
{
const alternatives alt = this->alternatives_1;
kc::unparse(alt, kc_printer, kc_current_view);
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const alternatives a = this->alternatives_1;
kc::unparse(a, kc_printer, kc_current_view);
}
break;
}
case view_check_count1_enum: {
view_check_count1_class& kc_current_view=static_cast<view_check_count1_class&>(kc_current_view_base);
{
const alternatives alt = this->alternatives_1;
kc::unparse(alt, kc_printer, kc_current_view);
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_productionblock_ListAlternatives::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_classdefs_c_enum: {
view_gen_classdefs_c_class& kc_current_view=static_cast<view_gen_classdefs_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_classdecls2_h_enum: {
view_gen_classdecls2_h_class& kc_current_view=static_cast<view_gen_classdecls2_h_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_unparsedefs_c_enum: {
view_gen_unparsedefs_c_class& kc_current_view=static_cast<view_gen_unparsedefs_c_class&>(kc_current_view_base);
if ((this->alternatives_1->prod_sel() == sel_Consalternatives) && ((this->alternatives_1)->alternative_1->prod_sel() == sel_Alternative) && ((this->alternatives_1)->alternatives_1->prod_sel() == sel_Consalternatives) && (((this->alternatives_1)->alternatives_1)->alternative_1->prod_sel() == sel_Alternative)) {
const alternative consa = (this->alternatives_1)->alternative_1;
const ID consid = phylum_cast<const impl_alternative_Alternative*>((this->alternatives_1)->alternative_1)->ID_1;
const alternative nila = ((this->alternatives_1)->alternatives_1)->alternative_1;
const ID nilid = phylum_cast<const impl_alternative_Alternative*>(((this->alternatives_1)->alternatives_1)->alternative_1)->ID_1;
{ kc_printer(kc_t("void\
\nimpl_"), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t("::do_unparse(printer_functor kc_printer, uview kc_current_view_base)\
\n{\
\n if(is_nil())\
\n nil_do_unparse(kc_printer, kc_current_view_base);\
\n else\
\n switch(kc_current_view_base) {\
\n"), kc_current_view); }
unparseviewsinfo a_unparseviewsinfo = f_unparseviewsinfo_of_alternative( consa, Theuviewnames );
gl_operator = consid;
kc::unparse(a_unparseviewsinfo, kc_printer, view_gen_unparsedefs_c);
{ kc_printer(kc_t(" }\
\n}\
\n\
\nvoid\
\nimpl_"), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t("::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)\
\n{\
\n switch(kc_current_view_base) {\
\n"), kc_current_view); }
freespineandelements(a_unparseviewsinfo);
a_unparseviewsinfo = f_unparseviewsinfo_of_alternative( nila, Theuviewnames );
gl_operator = nilid;
kc::unparse(a_unparseviewsinfo, kc_printer, view_gen_unparsedefs_c);
{ kc_printer(kc_t(" }\
\n}\
\n\
\n"), kc_current_view); }
freespineandelements(a_unparseviewsinfo);
} else
goto kc_unparsing_default;
break;
}
case view_gen_rewritedefs_c_enum: {
view_gen_rewritedefs_c_class& kc_current_view=static_cast<view_gen_rewritedefs_c_class&>(kc_current_view_base);
if ((this->alternatives_1->prod_sel() == sel_Consalternatives) && ((this->alternatives_1)->alternative_1->prod_sel() == sel_Alternative) && ((this->alternatives_1)->alternatives_1->prod_sel() == sel_Consalternatives)) {
const alternative consa = (this->alternatives_1)->alternative_1;
const ID oid = phylum_cast<const impl_alternative_Alternative*>((this->alternatives_1)->alternative_1)->ID_1;
const alternative nila = ((this->alternatives_1)->alternatives_1)->alternative_1;
gl_phylum = f_phylumofoperator(oid);
if(!g_options.rw_loop)
{
covariant_choice(gl_phylum, "", "abstract_phylum", kc_printer, kc_current_view);
}
else
{
{ kc_printer(kc_t("abstract_phylum"), kc_current_view); }
}
{ kc_printer(kc_t(" impl_"), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t("::"), kc_current_view); }
if(f_rewrite_in_operatordecl(consa) || g_options.rw_loop)
{
{ kc_printer(kc_t("do_"), kc_current_view); }
}
{ kc_printer(kc_t("rewrite(rview kc_current_view_base)\
\n{\
\n if (is_nil()) {\
\n"), kc_current_view); }
kc::unparse(nila, kc_printer, view_gen_rewritedefs_body_c);
{ kc_printer(kc_t(" } else { // not Nil, Cons\
\n"), kc_current_view); }
kc::unparse(consa, kc_printer, view_gen_rewritedefs_body_c);
{ kc_printer(kc_t(" }\
\n}\
\n"), kc_current_view); }
gl_phylum = 0;
} else
goto kc_unparsing_default;
break;
}
case view_gen_phylummap_c_enum: {
view_gen_phylummap_c_class& kc_current_view=static_cast<view_gen_phylummap_c_class&>(kc_current_view_base);
if ((this->alternatives_1->prod_sel() == sel_Consalternatives) && ((this->alternatives_1)->alternative_1->prod_sel() == sel_Alternative) && ((this->alternatives_1)->alternatives_1->prod_sel() == sel_Nilalternatives)) {
const ID oid = phylum_cast<const impl_alternative_Alternative*>((this->alternatives_1)->alternative_1)->ID_1;
{ kc_printer(kc_t("sel_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t(", sel_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
} else
if ((this->alternatives_1->prod_sel() == sel_Consalternatives) && ((this->alternatives_1)->alternative_1->prod_sel() == sel_Alternative)) {
const ID oid = phylum_cast<const impl_alternative_Alternative*>((this->alternatives_1)->alternative_1)->ID_1;
const alternatives ra = (this->alternatives_1)->alternatives_1;
{ kc_printer(kc_t("sel_"), kc_current_view); }
kc::unparse(ra, kc_printer, kc_current_view);
{ kc_printer(kc_t(", sel_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_deprecated_enum: {
view_gen_deprecated_class& kc_current_view=static_cast<view_gen_deprecated_class&>(kc_current_view_base);
{
const alternatives a = this->alternatives_1;
kc::unparse(a, kc_printer, kc_current_view);
}
break;
}
case view_check_uniq1_enum: {
view_check_uniq1_class& kc_current_view=static_cast<view_check_uniq1_class&>(kc_current_view_base);
{
const alternatives alt = this->alternatives_1;
kc::unparse(alt, kc_printer, kc_current_view);
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const alternatives a = this->alternatives_1;
kc::unparse(a, kc_printer, kc_current_view);
}
break;
}
case view_check_count1_enum: {
view_check_count1_class& kc_current_view=static_cast<view_check_count1_class&>(kc_current_view_base);
{
const alternatives alt = this->alternatives_1;
kc::unparse(alt, kc_printer, kc_current_view);
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_productionblock_Emptyproductionblock::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_phylummap_c_enum: {
view_gen_phylummap_c_class& kc_current_view=static_cast<view_gen_phylummap_c_class&>(kc_current_view_base);
{
}
break;
}
case view_check_uniq1_enum: {
view_check_uniq1_class& kc_current_view=static_cast<view_check_uniq1_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_alternatives::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_set_subphylumdefs_c_enum: {
view_gen_set_subphylumdefs_c_class& kc_current_view=static_cast<view_gen_set_subphylumdefs_c_class&>(kc_current_view_base);
if ((this->alternative_1->prod_sel() == sel_Alternative) && (phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->arguments_1->prod_sel() == sel_Nilarguments)) {
const alternatives ra = this->alternatives_1;
kc::unparse(ra, kc_printer, kc_current_view);
} else
if ((this->alternative_1->prod_sel() == sel_Alternative)) {
const ID oid = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->ID_1;
const arguments args = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->arguments_1;
const alternatives ra = this->alternatives_1;
ID id = f_phylumofoperator(oid);
{ kc_printer(kc_t("void impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t("::set_subphylum(int no, abstract_phylum val)\
\n{\
\n abstract_phylum newval=0;\
\n switch(no) {\
\n"), kc_current_view); }
gl_no_of_args = 0;
kc::unparse(args, kc_printer, kc_current_view);
{ kc_printer(kc_t(" }\
\n assertNonNull(newval);\
\n}\
\n"), kc_current_view); }
kc::unparse(ra, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_subphylumdefs_c_enum: {
view_gen_subphylumdefs_c_class& kc_current_view=static_cast<view_gen_subphylumdefs_c_class&>(kc_current_view_base);
if ((this->alternative_1->prod_sel() == sel_Alternative) && (phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->arguments_1->prod_sel() == sel_Nilarguments)) {
const alternatives ra = this->alternatives_1;
kc::unparse(ra, kc_printer, kc_current_view);
} else
if ((this->alternative_1->prod_sel() == sel_Alternative)) {
const ID oid = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->ID_1;
const arguments args = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->arguments_1;
const alternatives ra = this->alternatives_1;
ID id = f_phylumofoperator(oid);
{ kc_printer(kc_t("abstract_phylum impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t("::subphylum(int no) const\
\n{\
\n switch(no){\
\n"), kc_current_view); }
gl_no_of_args = 0;
kc::unparse(args, kc_printer, kc_current_view);
{ kc_printer(kc_t(" }\
\n return 0;\
\n}\
\n"), kc_current_view); }
kc::unparse(ra, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_classdefs_c_enum: {
view_gen_classdefs_c_class& kc_current_view=static_cast<view_gen_classdefs_c_class&>(kc_current_view_base);
{
const alternative alt = this->alternative_1;
const alternatives ra = this->alternatives_1;
kc::unparse(alt, kc_printer, kc_current_view);
kc::unparse(ra, kc_printer, kc_current_view);
}
break;
}
case view_gen_classdecls2_h_enum: {
view_gen_classdecls2_h_class& kc_current_view=static_cast<view_gen_classdecls2_h_class&>(kc_current_view_base);
if ((this->alternative_1->prod_sel() == sel_Alternative)) {
const alternative alt = this->alternative_1;
const ID oid = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->ID_1;
const alternatives ra = this->alternatives_1;
kc::unparse(alt, kc_printer, kc_current_view);
kc::unparse(alt, kc_printer, view_gen_nodetypes_h);
ID pid = f_phylumofoperator(oid);
if (f_ispredefinedphylum(pid)) {
f_phylumdeclofid(pid)->additional_members->unparse(kc_printer, view_gen_member_dcl_h);
}
kc::unparse(alt->additional_members, kc_printer, view_gen_member_dcl_h);
gl_operator = 0;
if(!g_options.no_unparse)
{
{ kc_printer(kc_t("\rprivate:\v\
\n void do_unparse(printer_functor, uview);\n"), kc_current_view); }
}
{ kc_printer(kc_t("};\
\n"), kc_current_view); }
kc::unparse(ra, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_attributeOf_function_enum: {
view_gen_attributeOf_function_class& kc_current_view=static_cast<view_gen_attributeOf_function_class&>(kc_current_view_base);
if ((this->alternative_1->prod_sel() == sel_Alternative)) {
const alternative a = this->alternative_1;
const ID oid = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->ID_1;
const alternatives ra = this->alternatives_1;
kc::unparse(ra, kc_printer, kc_current_view);
int attrcount = gl_no_of_args;
arguments attrs = gl_args;
ac_identifier_list idents = gl_idents;
a->additional_members->unparse(kc_printer, view_count_attrs);
gl_no_of_args += attrcount;
gl_args = concat(gl_args, attrs);
gl_idents = concat(gl_idents, idents);
gl_operator=oid;
if (gl_no_of_args)
{
{ kc_printer(kc_t("case sel_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t(": switch(no) {\n"), kc_current_view); }
kc::unparse(gl_args, kc_printer, kc_current_view);
{ kc_printer(kc_t("}\
\n "), kc_current_view); }
}
gl_no_of_args=attrcount;
gl_args=attrs;
gl_idents=idents;
} else
goto kc_unparsing_default;
break;
}
case view_gen_create_function_enum: {
view_gen_create_function_class& kc_current_view=static_cast<view_gen_create_function_class&>(kc_current_view_base);
if ((this->alternative_1->prod_sel() == sel_Alternative)) {
const alternative alt = this->alternative_1;
const ID oid = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->ID_1;
const arguments args = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->arguments_1;
const alternatives ra = this->alternatives_1;
{ kc_printer(kc_t(" \rcase sel_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t(":\v\
\n return "), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(args, kc_printer, kc_current_view);
{ kc_printer(kc_t(");\
\n"), kc_current_view); }
kc::unparse(ra, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_operatordefs_hash_c_enum: {
view_gen_operatordefs_hash_c_class& kc_current_view=static_cast<view_gen_operatordefs_hash_c_class&>(kc_current_view_base);
if ((this->alternative_1->prod_sel() == sel_Alternative)) {
const alternative alt = this->alternative_1;
const ID oid = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->ID_1;
const arguments args = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->arguments_1;
const alternatives ra = this->alternatives_1;
kc::unparse(ra, kc_printer, kc_current_view);
gl_isnotlist = f_listelementphylum(gl_phylum)->eq(f_emptyId());
gl_operator = oid;
gl_args=args;
kc::unparse(args, kc_printer, view_count_args);
if(f_constructors_in_operatordecl(alt))
{
kc::unparse(alt->additional_members, kc_printer, kc_current_view);
}
else {
fndeclarations _fd = Consfndeclarations(FnAcDeclaration(Nilac_declaration_specifiers(),
AcDeclarator(Nopointer(), AcNoRef(), AcQualifiedDeclProto(Nilac_class_qualifier_list(),
AcDirectDeclId(oid),
AcParList(Nilac_parameter_list()),
AcNoQualifier())),
Nilac_declaration_list(), AcNoBaseInit(), NilCtext(), Id(Str(mkcasestring(""))),
ConstructorFn()), Nilfndeclarations());
UNPARSE(_fd);
_fd->free(false);
}
gl_args=0;
gl_operator = 0;
gl_isnotlist = true;
} else
goto kc_unparsing_default;
break;
}
case view_gen_operatordefs_nonhash_c_enum: {
view_gen_operatordefs_nonhash_c_class& kc_current_view=static_cast<view_gen_operatordefs_nonhash_c_class&>(kc_current_view_base);
if ((this->alternative_1->prod_sel() == sel_Alternative)) {
const alternative alt = this->alternative_1;
const ID oid = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->ID_1;
const arguments args = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->arguments_1;
const alternatives ra = this->alternatives_1;
kc::unparse(ra, kc_printer, kc_current_view);
gl_isnotlist = f_listelementphylum(gl_phylum)->eq(f_emptyId());
gl_operator = oid;
gl_args=args;
kc::unparse(args, kc_printer, view_count_args);
if(f_constructors_in_operatordecl(alt))
{
kc::unparse(alt->additional_members, kc_printer, kc_current_view);
}
else {
fndeclarations _fd = Consfndeclarations(FnAcDeclaration(Nilac_declaration_specifiers(),
AcDeclarator(Nopointer(), AcNoRef(), AcQualifiedDeclProto(Nilac_class_qualifier_list(),
AcDirectDeclId(oid),
AcParList(Nilac_parameter_list()),
AcNoQualifier())),
Nilac_declaration_list(), AcNoBaseInit(), NilCtext(), Id(Str(mkcasestring(""))),
ConstructorFn()), Nilfndeclarations());
UNPARSE(_fd);
_fd->free(false);
}
gl_args=0;
gl_operator = 0;
gl_isnotlist = true;
} else
goto kc_unparsing_default;
break;
}
case view_gen_operatorcast_h_enum: {
view_gen_operatorcast_h_class& kc_current_view=static_cast<view_gen_operatorcast_h_class&>(kc_current_view_base);
if ((this->alternative_1->prod_sel() == sel_Alternative)) {
const alternative alt = this->alternative_1;
const ID oid = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->ID_1;
const arguments args = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->arguments_1;
const alternatives ra = this->alternatives_1;
kc::unparse(ra, kc_printer, kc_current_view);
if(f_constructors_in_operatordecl(alt))
{
gl_args=args;
v_report(NonFatal( NoFileLine(), Problem1S( "internal error: experimental operator_cast<>() unlikely to work with user-defined constructors" )));
kc::unparse(args, kc_printer, view_count_args);
kc::unparse(alt->additional_members, kc_printer, kc_current_view);
gl_args=0;
}
else
{
ID pid = f_phylumofoperator(oid);
{ kc_printer(kc_t("template <class "), kc_current_view); }
kc::unparse(oid, kc_printer, view_gen_fn_pointer_name);
{ kc_printer(kc_t("*\b kc_f("), kc_current_view); }
kc::unparse(args, kc_printer, kc_current_view);
{ kc_printer(kc_t(")>\
\n class "), kc_current_view); }
kc::unparse(oid, kc_printer, view_gen_fn_pointer_name);
{ kc_printer(kc_t("*\
\n operator_cast("), kc_current_view); }
kc::unparse(pid, kc_printer, kc_current_view);
{ kc_printer(kc_t(" kc_p)\
\n {\
\n if (kc_f!="), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t(" || kc_p->prod_sel()!=sel_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t(")\
\n throw std::bad_cast();\
\n return static_cast<class "), kc_current_view); }
kc::unparse(oid, kc_printer, view_gen_fn_pointer_name);
{ kc_printer(kc_t("*>(kc_p);\
\n }\n\n"), kc_current_view); }
}
} else
goto kc_unparsing_default;
break;
}
case view_gen_operatordecls_h_enum: {
view_gen_operatordecls_h_class& kc_current_view=static_cast<view_gen_operatordecls_h_class&>(kc_current_view_base);
if ((this->alternative_1->prod_sel() == sel_Alternative)) {
const alternative alt = this->alternative_1;
const ID oid = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->ID_1;
const arguments args = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->arguments_1;
const alternatives ra = this->alternatives_1;
kc::unparse(ra, kc_printer, kc_current_view);
if(f_constructors_in_operatordecl(alt))
{
gl_args=args;
kc::unparse(args, kc_printer, view_count_args);
kc::unparse(alt->additional_members, kc_printer, kc_current_view);
gl_args=0;
}
else
{
{ kc_printer(kc_t("class "), kc_current_view); }
kc::unparse(oid, kc_printer, view_gen_fn_pointer_name);
{ kc_printer(kc_t("*\b "), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t(" ("), kc_current_view); }
kc::unparse(args, kc_printer, kc_current_view);
{ kc_printer(kc_t(");\n"), kc_current_view); }
}
} else
goto kc_unparsing_default;
break;
}
case view_gen_operatormap_attributes_enum: {
view_gen_operatormap_attributes_class& kc_current_view=static_cast<view_gen_operatormap_attributes_class&>(kc_current_view_base);
if ((this->alternative_1->prod_sel() == sel_Alternative)) {
const alternative a = this->alternative_1;
const ID oid = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->ID_1;
const alternatives ra = this->alternatives_1;
kc::unparse(ra, kc_printer, kc_current_view);
int attrcount = gl_no_of_args;
arguments attrs = gl_args;
ac_identifier_list idents = gl_idents;
a->additional_members->unparse(kc_printer, view_count_attrs);
gl_no_of_args += attrcount;
gl_args = concat(gl_args, attrs);
gl_idents = concat(gl_idents, idents);
if (gl_no_of_args)
{
{ kc_printer(kc_t("static enum_phyla kc_attrs_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t("[] = { "), kc_current_view); }
kc::unparse(gl_args, kc_printer, view_gen_operatormap_subphyla);
{ kc_printer(kc_t(" };\
\n "), kc_current_view); }
}
gl_no_of_args=attrcount;
gl_args=attrs;
gl_idents=idents;
} else
goto kc_unparsing_default;
break;
}
case view_gen_operatormap_subphyla_enum: {
view_gen_operatormap_subphyla_class& kc_current_view=static_cast<view_gen_operatormap_subphyla_class&>(kc_current_view_base);
if ((this->alternative_1->prod_sel() == sel_Alternative)) {
const ID oid = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->ID_1;
const arguments args = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->arguments_1;
const alternatives ra = this->alternatives_1;
kc::unparse(ra, kc_printer, kc_current_view);
kc::unparse(args, kc_printer, view_count_args);
if (gl_no_of_args)
{
{ kc_printer(kc_t("static enum_phyla kc_subphyla_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t("[] = { "), kc_current_view); }
kc::unparse(args, kc_printer, kc_current_view);
{ kc_printer(kc_t(" };\
\n "), kc_current_view); }
}
} else
goto kc_unparsing_default;
break;
}
case view_gen_operatormap_c_enum: {
view_gen_operatormap_c_class& kc_current_view=static_cast<view_gen_operatormap_c_class&>(kc_current_view_base);
if ((this->alternative_1->prod_sel() == sel_Alternative)) {
const alternative alt = this->alternative_1;
const ID oid = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->ID_1;
const arguments args = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->arguments_1;
const alternatives ra = this->alternatives_1;
kc::unparse(ra, kc_printer, kc_current_view);
kc::unparse(args, kc_printer, view_count_args);
{ kc_printer(kc_t(" { \""), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t("\", "), kc_current_view); }
kc::unparse(gl_no_of_args, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
if (gl_atomicity)
{
{ kc_printer(kc_t("true"), kc_current_view); }
}
else
{
{ kc_printer(kc_t("false"), kc_current_view); }
}
{ kc_printer(kc_t(", phylum_"), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
if (gl_no_of_args>0)
{
{ kc_printer(kc_t("kc_subphyla_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
}
else
{
{ kc_printer(kc_t("0, "), kc_current_view); }
}
The_abstract_phylum_decl->additional_members->unparse(kc_printer, view_count_attrs);
int attrcount = gl_no_of_args;
f_phylumdeclofid(f_phylumofoperator(oid))->additional_members->unparse(kc_printer, view_count_attrs);
attrcount += gl_no_of_args;
alt->additional_members->unparse(kc_printer, view_count_attrs);
gl_no_of_args += attrcount;
kc::unparse(gl_no_of_args, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
if (gl_no_of_args>0)
{
{ kc_printer(kc_t("kc_attrs_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
}
else
{
{ kc_printer(kc_t("0"), kc_current_view); }
}
{ kc_printer(kc_t(", sizeof("), kc_current_view); }
kc::unparse(oid, kc_printer, view_class_of_op);
{ kc_printer(kc_t(") },\n"), kc_current_view); }
} else
goto kc_unparsing_default;
break;
}
case view_gen_phylummap_c_enum: {
view_gen_phylummap_c_class& kc_current_view=static_cast<view_gen_phylummap_c_class&>(kc_current_view_base);
if ((this->alternative_1->prod_sel() == sel_Alternative) && (this->alternatives_1->prod_sel() == sel_Nilalternatives)) {
const ID oid = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->ID_1;
kc::unparse(oid, kc_printer, kc_current_view);
} else
{
const alternatives ra = this->alternatives_1;
kc::unparse(ra, kc_printer, kc_current_view);
}
break;
}
case view_gen_enumoperators_h_enum: {
view_gen_enumoperators_h_class& kc_current_view=static_cast<view_gen_enumoperators_h_class&>(kc_current_view_base);
if ((this->alternatives_1->prod_sel() == sel_Nilalternatives)) {
const alternative a = this->alternative_1;
kc::unparse(a, kc_printer, kc_current_view);
} else
{
const alternative a = this->alternative_1;
const alternatives as = this->alternatives_1;
kc::unparse(as, kc_printer, kc_current_view);
kc::unparse(a, kc_printer, kc_current_view);
}
break;
}
case view_gen_deprecated_enum: {
view_gen_deprecated_class& kc_current_view=static_cast<view_gen_deprecated_class&>(kc_current_view_base);
{
const alternative a = this->alternative_1;
const alternatives as = this->alternatives_1;
kc::unparse(as, kc_printer, kc_current_view);
kc::unparse(a, kc_printer, kc_current_view);
}
break;
}
case view_check_uniq1_enum: {
view_check_uniq1_class& kc_current_view=static_cast<view_check_uniq1_class&>(kc_current_view_base);
{
const alternative a = this->alternative_1;
const alternatives ralts = this->alternatives_1;
kc::unparse(ralts, kc_printer, kc_current_view);
kc::unparse(a, kc_printer, kc_current_view);
}
break;
}
case view_check_count1_enum: {
view_check_count1_class& kc_current_view=static_cast<view_check_count1_class&>(kc_current_view_base);
if ((this->alternative_1->prod_sel() == sel_Alternative)) {
const alternative alt = this->alternative_1;
const ID id = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->ID_1;
const arguments args = phylum_cast<const impl_alternative_Alternative*>(this->alternative_1)->arguments_1;
const alternatives ralts = this->alternatives_1;
kc::unparse(ralts, kc_printer, kc_current_view);
kc::unparse(args, kc_printer, kc_current_view);
v_resetcount();
} else
goto kc_unparsing_default;
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (alternatives iterator_ = this; iterator_->alternatives_1 != 0; iterator_ = iterator_->alternatives_1)
iterator_->alternative_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_alternatives::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_classdefs_c_enum: {
view_gen_classdefs_c_class& kc_current_view=static_cast<view_gen_classdefs_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_classdecls2_h_enum: {
view_gen_classdecls2_h_class& kc_current_view=static_cast<view_gen_classdecls2_h_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_attributeOf_function_enum: {
view_gen_attributeOf_function_class& kc_current_view=static_cast<view_gen_attributeOf_function_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_operatorcast_h_enum: {
view_gen_operatorcast_h_class& kc_current_view=static_cast<view_gen_operatorcast_h_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_operatordecls_h_enum: {
view_gen_operatordecls_h_class& kc_current_view=static_cast<view_gen_operatordecls_h_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_operatormap_attributes_enum: {
view_gen_operatormap_attributes_class& kc_current_view=static_cast<view_gen_operatormap_attributes_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_operatormap_subphyla_enum: {
view_gen_operatormap_subphyla_class& kc_current_view=static_cast<view_gen_operatormap_subphyla_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_operatormap_c_enum: {
view_gen_operatormap_c_class& kc_current_view=static_cast<view_gen_operatormap_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_phylummap_c_enum: {
view_gen_phylummap_c_class& kc_current_view=static_cast<view_gen_phylummap_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_deprecated_enum: {
view_gen_deprecated_class& kc_current_view=static_cast<view_gen_deprecated_class&>(kc_current_view_base);
{
}
break;
}
case view_check_uniq1_enum: {
view_check_uniq1_class& kc_current_view=static_cast<view_check_uniq1_class&>(kc_current_view_base);
{
}
break;
}
case view_check_count1_enum: {
view_check_count1_class& kc_current_view=static_cast<view_check_count1_class&>(kc_current_view_base);
{
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_alternative_Alternative::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_classdefs_c_enum: {
view_gen_classdefs_c_class& kc_current_view=static_cast<view_gen_classdefs_c_class&>(kc_current_view_base);
{
const alternative alt = this/**/;
const ID oid = this->ID_1;
const arguments args = this->arguments_1;
gl_operator=oid;
enum_operators kc_i = f_selofoperator(gl_operator);
bool priorAssignments=false;
if(kc_i!=sel_NoCaseStr && kc_i!=sel__Str)
{
if(!f_constructors_in_operatordecl(alt))
{
kc::unparse(oid, kc_printer, view_class_of_op);
{ kc_printer(kc_t("::"), kc_current_view); }
kc::unparse(oid, kc_printer, view_class_of_op);
{ kc_printer(kc_t("("), kc_current_view); }
if (f_ispredefinedphylum(gl_phylum))
{
kc::unparse(args, kc_printer, view_gen_fnarg_and_decls_predef);
}
else
{
kc::unparse(args, kc_printer, view_gen_fnarg_and_decls);
}
{ kc_printer(kc_t(")\n\v"), kc_current_view); }
if (f_ispredefinedphylum(gl_phylum)) {
PRINT(priorAssignments ? ", " : ": "); priorAssignments=true;
kc::unparse(args, kc_printer, view_gen_assignments_predef_ini);
} else if (args->length()>0) {
PRINT(priorAssignments ? ", " : ": "); priorAssignments=true;
kc::unparse(args, kc_printer, view_gen_assignment_inis);
}
kc::unparse(additional_members, kc_printer, view_count_nonstaticmembers);
if (gl_no_of_args)
{
PRINT(priorAssignments ? ", " : ": ");
kc::unparse(gl_members, kc_printer, view_gen_user_assignment_inis);
}
{ kc_printer(kc_t(" { }\r\n"), kc_current_view); }
}
}
}
break;
}
case view_gen_classdecls2_h_enum: {
view_gen_classdecls2_h_class& kc_current_view=static_cast<view_gen_classdecls2_h_class&>(kc_current_view_base);
{
const alternative alt = this/**/;
const ID oid = this->ID_1;
const arguments args = this->arguments_1;
ID id = f_phylumofoperator(oid);
gl_operator = oid;
{ kc_printer(kc_t("class "), kc_current_view); }
if(g_options.dllexports!="") {
PRINT(g_options.dllexports.c_str());
PRINT(" ");
}
{ kc_printer(kc_t("impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t(":"), kc_current_view); }
{
baseclass_list kc_selvar_0_1 = phylum_cast<baseclass_list>(alt->base_classes);
if ((kc_selvar_0_1->prod_sel() == sel_Consbaseclass_list)) {
UNPARSE(alt->base_classes);
} else
{
if (f_ispredefinedphylum(id)) {
PRINT("public impl_abstract_phylum");
} else {
PRINT("public impl_"); UNPARSE(id);
}
}
}
{ kc_printer(kc_t("{\
\n\rpublic:\v\
\n enum_operators prod_sel() const\
\n \v{ return sel_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t("; }\r\
\n"), kc_current_view); }
if (f_ispredefinedphylum(id))
{
{ kc_printer(kc_t(" static const enum_phyla phylum_sel_;\n"), kc_current_view); }
}
enum_operators kc_i = f_selofoperator(gl_operator);
if(kc_i!=sel_NoCaseStr && kc_i!=sel__Str)
{
if(!f_constructors_in_operatordecl(alt))
{
{ kc_printer(kc_t("explicit impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
if (f_ispredefinedphylum(id))
{
kc::unparse(args, kc_printer, view_gen_fnarg_and_decls_predef);
}
else
{
kc::unparse(args, kc_printer, view_gen_operatordecls_h);
}
{ kc_printer(kc_t(");\
\n "), kc_current_view); }
}
}
else
{
{ kc_printer(kc_t("\rprivate:\v\
\n explicit impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t("(const kc_char_t*);\
\n void make_own(int length);\
\n friend "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" mk"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("(const kc_char_t*, int);\
\n\rpublic:\v\
\n ~impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t("() {\
\n #if defined (_MSC_VER) && _MSC_VER<1300\
\n delete [] (kc_char_t*)name;\
\n #else\
\n delete [] name;\
\n #endif\
\n }\
\n"), kc_current_view); }
}
if(args->length()!=0)
{
{ kc_printer(kc_t(" abstract_phylum subphylum(int) const;\
\n void set_subphylum(int, abstract_phylum);\
\n"), kc_current_view); }
}
if (!g_options.no_printdot && f_ispredefinedphylum(id))
{
{ kc_printer(kc_t("void fprintdot( FILE*, const char*, const char*, const char*, bool, bool, bool ) const;\n"), kc_current_view); }
}
if (!g_options.no_rewrite)
{
if (!g_options.rw_loop)
{
if (!f_ispredefinedphylum(id)) {
if(!f_rewrite_in_operatordecl(alt))
covariant_choice(id, " rewrite( rview );", "abstract_phylum rewrite( rview );",
kc_printer, kc_current_view);
else
covariant_choice(id, " do_rewrite( rview );", "abstract_phylum do_rewrite( rview );",
kc_printer, kc_current_view);
}
else
{
covariant_choice(id, " rewrite( rview )", "abstract_phylum rewrite( rview )",
kc_printer, kc_current_view);
{ kc_printer(kc_t("\n\v{ return this; }\r"), kc_current_view); }
}
}
else
{
if (!f_ispredefinedphylum(id))
{
{ kc_printer(kc_t("abstract_phylum do_rewrite( rview );"), kc_current_view); }
}
}
}
{ kc_printer(kc_t("\n"), kc_current_view); }
if (g_options.smart_pointer)
{
if(f_ispredefinedphylum(id))
{
{ kc_printer(kc_t("abstract_phylum_ref* new_phylum_ref() {\
\n return new phylum_ref<impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(this);\
\n }\
\n impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("& operator=(const impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("& p) {\
\n phylum_ref<impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">* my_ref=static_cast<phylum_ref<impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">*>(get_ref());\
\n "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" self=this;\
\n if(my_ref) {\
\n abstract_phylum_ref* ref=p.get_ref();\
\n self=const_cast<"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(&p);\
\n if(ref)\
\n self=phylum_cast<"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(self->copy(true));\
\n my_ref->set_phylum(self);\
\n }\
\n return *self;\
\n }\
\n"), kc_current_view); }
kc::unparse(id, kc_printer, view_class_of_phy);
{ kc_printer(kc_t("& operator=(const phylum_ref<"), kc_current_view); }
kc::unparse(id, kc_printer, view_class_of_phy);
{ kc_printer(kc_t(">& r) {\
\n phylum_ref<"), kc_current_view); }
kc::unparse(id, kc_printer, view_class_of_phy);
{ kc_printer(kc_t(">* my_ref=static_cast<phylum_ref<"), kc_current_view); }
kc::unparse(id, kc_printer, view_class_of_phy);
{ kc_printer(kc_t(">*>(get_ref());\
\n "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" self=this;\
\n if(my_ref) {\
\n self=phylum_cast<"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(r.get_phylum()?r.get_phylum()->copy(true):0);\
\n my_ref->set_phylum(self);\
\n }\
\n return *self;\
\n }\
\n "), kc_current_view); }
}
else
{
kc::unparse(id, kc_printer, view_class_of_phy);
{ kc_printer(kc_t("& operator=(const impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("& p) {\
\n return "), kc_current_view); }
kc::unparse(id, kc_printer, view_class_of_phy);
{ kc_printer(kc_t("::operator=(p);\
\n }\
\n impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("& operator=(const phylum_ref<impl_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(">& r) {\
\n return "), kc_current_view); }
kc::unparse(id, kc_printer, view_class_of_phy);
{ kc_printer(kc_t("::operator=(r);\
\n }\
\n "), kc_current_view); }
}
kc::unparse(oid, kc_printer, view_class_of_op);
{ kc_printer(kc_t("* return_ptr() { if(get_ref()) get_ref()->lock(); return this; }\n"), kc_current_view); }
}
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
{
const arguments args = this->arguments_1;
{ kc_printer(kc_t(" {\
\n"), kc_current_view); }
kc::unparse(args, kc_printer, kc_current_view);
{ kc_printer(kc_t(" }\
\n"), kc_current_view); }
}
break;
}
case view_gen_unparsedefs_c_enum: {
view_gen_unparsedefs_c_class& kc_current_view=static_cast<view_gen_unparsedefs_c_class&>(kc_current_view_base);
{
const ID oid = this->ID_1;
unparseviewsinfo a_unparseviewsinfo = f_unparseviewsinfo_of_alternative( this, Theuviewnames );
gl_phylum = f_phylumofoperator(oid);
gl_operator = oid;
gl_unparse_goto_used = false;
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t("void\
\nimpl_"), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t("::do_unparse(printer_functor kc_printer, uview kc_current_view_base)\
\n{\
\n switch(kc_current_view_base) {\
\n"), kc_current_view); }
kc::unparse(a_unparseviewsinfo, kc_printer, view_gen_unparsedefs_c);
{ kc_printer(kc_t(" }\
\n}\
\n\
\n"), kc_current_view); }
freespineandelements(a_unparseviewsinfo);
gl_phylum = 0;
}
break;
}
case view_gen_rewritedefs_body_c_enum: {
view_gen_rewritedefs_body_c_class& kc_current_view=static_cast<view_gen_rewritedefs_body_c_class&>(kc_current_view_base);
{
const alternative alt = this/**/;
const ID oid = this->ID_1;
const arguments args = this->arguments_1;
rewriteviewsinfo a_rewriteviewsinfo = f_rewriteviewsinfo_of_alternative( alt, Therviewnames );
gl_operator = oid;
gl_alternative = alt;
gl_rewrite_goto_used = false;
args->unparse(kc_printer, view_gen_rewritedefs_rewritearg_c);
bool empty=true;
{
rewriteviewsinfo kc_fe_selvar_1 = a_rewriteviewsinfo;
while(
kc_fe_selvar_1->prod_sel() == sel_Consrewriteviewsinfo
) {
rewriteviewinfo kc_selvar_0_1 = kc_fe_selvar_1->rewriteviewinfo_1;
{
{
{
const rewriteviewinfo rvi = kc_selvar_0_1;
{
rewriteviewinfo kc_selvar_1_1 = phylum_cast<rewriteviewinfo>(rvi);
if ((kc_selvar_1_1->prod_sel() == sel_Rewriteviewinfo) && (phylum_cast<const impl_rewriteviewinfo_Rewriteviewinfo*>(kc_selvar_1_1)->rewriterulesinfo_1->prod_sel() == sel_Nilrewriterulesinfo)) {
} else
{
empty=false;
}
}
}
}
}
kc_fe_selvar_1 = kc_fe_selvar_1->rewriteviewsinfo_1;
}
}
if(!empty) {
PRINT(" switch(kc_current_view_base) {\n");
a_rewriteviewsinfo->unparse(kc_printer, view_gen_rewritedefs_c);
PRINT(" }\n");
}
kc::unparse(args, kc_printer, view_gen_rewritedefs_testarg_c);
freespineandelements(a_rewriteviewsinfo);
gl_operator = 0;
gl_alternative = 0;
}
break;
}
case view_gen_rewritedefs_other_c_enum: {
view_gen_rewritedefs_other_c_class& kc_current_view=static_cast<view_gen_rewritedefs_other_c_class&>(kc_current_view_base);
{
const ID id = this->ID_1;
const arguments args = this->arguments_1;
if (! gl_rewrite_rewriteinfo->eq( Nilrewriterulesinfo()))
{
gl_args=args;
kc::unparse(gl_rewrite_rewriteinfo, kc_printer, kc_current_view);
gl_args = 0;
}
}
break;
}
case view_gen_rewritedefs_default_c_enum: {
view_gen_rewritedefs_default_c_class& kc_current_view=static_cast<view_gen_rewritedefs_default_c_class&>(kc_current_view_base);
{
const ID id = this->ID_1;
const arguments args = this->arguments_1;
gl_args=args;
kc::unparse(gl_rewrite_rewriteinfo, kc_printer, kc_current_view);
gl_args = 0;
}
break;
}
case view_gen_rewritedefs_c_enum: {
view_gen_rewritedefs_c_class& kc_current_view=static_cast<view_gen_rewritedefs_c_class&>(kc_current_view_base);
{
const alternative alt = this/**/;
const ID oid = this->ID_1;
const arguments args = this->arguments_1;
gl_phylum = f_phylumofoperator(oid);
if(!g_options.rw_loop)
{
covariant_choice(gl_phylum, "", "abstract_phylum", kc_printer, kc_current_view);
}
else
{
{ kc_printer(kc_t("abstract_phylum"), kc_current_view); }
}
{ kc_printer(kc_t(" impl_"), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t("::"), kc_current_view); }
if(f_rewrite_in_operatordecl(alt) || g_options.rw_loop)
{
{ kc_printer(kc_t("do_"), kc_current_view); }
}
{ kc_printer(kc_t("rewrite(rview kc_current_view_base)\
\n{\
\n"), kc_current_view); }
kc::unparse(this, kc_printer, view_gen_rewritedefs_body_c);
{ kc_printer(kc_t("\
\n}\
\n"), kc_current_view); }
gl_phylum = 0;
}
break;
}
case view_gen_listdecls_h_enum: {
view_gen_listdecls_h_class& kc_current_view=static_cast<view_gen_listdecls_h_class&>(kc_current_view_base);
{
const ID oid = this->ID_1;
ID id = f_phylumofoperator(oid);
ID el = f_listelementphylum(id);
if (!el->eq(f_emptyId())) {
{ kc_printer(kc_t("// TODO: Is this code ever generated?\n"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" map("), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(" (*)("), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t("));\n"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" filter( bool (*)("), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t("));\n"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" merge( "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(" (*)("), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t("));\n"), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(" reduce( "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" neutral, "), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(" (*)("), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
kc::unparse(el, kc_printer, kc_current_view);
{ kc_printer(kc_t("));\n"), kc_current_view); }
}
}
break;
}
case view_gen_nodetypes_h_enum: {
view_gen_nodetypes_h_class& kc_current_view=static_cast<view_gen_nodetypes_h_class&>(kc_current_view_base);
if ((this->arguments_1->prod_sel() == sel_Nilarguments)) {
const ID oid = this->ID_1;
if (f_ispredefinedphylum(f_phylumofoperator(oid))) {
enum_operators kc_i = f_selofoperator(oid);
{ kc_printer(kc_t(" "), kc_current_view); }
PRINT(preDefTypeAndName[kc_i][0]);
{ kc_printer(kc_t(" "), kc_current_view); }
PRINT(preDefTypeAndName[kc_i][1]);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
} else
{
}
} else
{
const ID oid = this->ID_1;
const arguments args = this->arguments_1;
kc::unparse(args, kc_printer, kc_current_view);
}
break;
}
case view_gen_enumoperators_h_enum: {
view_gen_enumoperators_h_class& kc_current_view=static_cast<view_gen_enumoperators_h_class&>(kc_current_view_base);
{
const ID id = this->ID_1;
{ kc_printer(kc_t(" sel_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" = "), kc_current_view); }
kc::unparse(g_no_of_operators, kc_printer, kc_current_view);
{ kc_printer(kc_t(",\
\n"), kc_current_view); }
g_no_of_operators++;
}
break;
}
case view_gen_deprecated_enum: {
view_gen_deprecated_class& kc_current_view=static_cast<view_gen_deprecated_class&>(kc_current_view_base);
{
const ID id = this->ID_1;
{ kc_printer(kc_t("#define kc_tag_"), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" impl_"), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n"), kc_current_view); }
}
break;
}
case view_check_uniq1_enum: {
view_check_uniq1_class& kc_current_view=static_cast<view_check_uniq1_class&>(kc_current_view_base);
{
const arguments args = this->arguments_1;
kc::unparse(args, kc_printer, kc_current_view);
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const ID id = this->ID_1;
kc::unparse(additional_members, kc_printer, view_count_attrs);
if (gl_no_of_args)
{
{ kc_printer(kc_t("void kc_initialize_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("()\
\n {\n"), kc_current_view); }
{ kc_printer(kc_t("}\n"), kc_current_view); }
}
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_arguments::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_argseqnr_rec_enum: {
view_gen_argseqnr_rec_class& kc_current_view=static_cast<view_gen_argseqnr_rec_class&>(kc_current_view_base);
if ((this->arguments_1->prod_sel() == sel_Nilarguments)) {
const ID a = this->ID_1;
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(a, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(this->seqnr, kc_printer, kc_current_view);
} else
{
const ID a = this->ID_1;
const arguments ra = this->arguments_1;
kc::unparse(ra, kc_printer, kc_current_view);
{ kc_printer(kc_t(", _"), kc_current_view); }
kc::unparse(a, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(this->seqnr, kc_printer, kc_current_view);
}
break;
}
case view_gen_set_subphylumdefs_c_enum: {
view_gen_set_subphylumdefs_c_class& kc_current_view=static_cast<view_gen_set_subphylumdefs_c_class&>(kc_current_view_base);
{
const ID a = this->ID_1;
const arguments ra = this->arguments_1;
kc::unparse(ra, kc_printer, kc_current_view);
{ kc_printer(kc_t("case "), kc_current_view); }
kc::unparse(gl_no_of_args, kc_printer, kc_current_view);
{ kc_printer(kc_t(": newval = "), kc_current_view); }
kc::unparse(a, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(this->seqnr, kc_printer, kc_current_view);
{ kc_printer(kc_t(" = dynamic_cast<"), kc_current_view); }
kc::unparse(a, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(val);break;\n"), kc_current_view); }
gl_no_of_args++;
}
break;
}
case view_gen_subphylumdefs_c_enum: {
view_gen_subphylumdefs_c_class& kc_current_view=static_cast<view_gen_subphylumdefs_c_class&>(kc_current_view_base);
{
const ID a = this->ID_1;
const arguments ra = this->arguments_1;
kc::unparse(ra, kc_printer, kc_current_view);
{ kc_printer(kc_t("case "), kc_current_view); }
kc::unparse(gl_no_of_args, kc_printer, kc_current_view);
{ kc_printer(kc_t(": return "), kc_current_view); }
kc::unparse(a, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(this->seqnr, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\n"), kc_current_view); }
gl_no_of_args++;
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
if ((this->arguments_1->prod_sel() == sel_Consarguments) && ((this->arguments_1)->arguments_1->prod_sel() == sel_Nilarguments) && (KC_TRACE_PROVIDED((kc_current_view.isList && kc_current_view.isOnlyDefault), "gen.k", 7409, this))) {
const ID tail = this->ID_1;
const ID head = (this->arguments_1)->ID_1;
{ kc_printer(kc_t(" for ("), kc_current_view); }
kc::unparse(tail, kc_printer, kc_current_view);
{ kc_printer(kc_t(" iterator_ = this; iterator_->"), kc_current_view); }
kc::unparse(tail, kc_printer, kc_current_view);
{ kc_printer(kc_t("_1 != 0; iterator_ = iterator_->"), kc_current_view); }
kc::unparse(tail, kc_printer, kc_current_view);
{ kc_printer(kc_t("_1)\
\n \viterator_->"), kc_current_view); }
kc::unparse(head, kc_printer, kc_current_view);
{ kc_printer(kc_t("_1->unparse(kc_printer, kc_current_view);\r\
\n"), kc_current_view); }
} else
if ((KC_TRACE_PROVIDED((kc_current_view.isList && !kc_current_view.isOnlyDefault), "gen.k", 7418, this))) {
const ID a = this->ID_1;
const arguments rargs = this->arguments_1;
kc::unparse(rargs, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(a, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(this->seqnr, kc_printer, kc_current_view);
{ kc_printer(kc_t("->"), kc_current_view); }
if (a->eq(f_phylumofoperator(gl_operator)) &&
kc_current_view.isList)
{
{ kc_printer(kc_t("do_"), kc_current_view); }
}
{ kc_printer(kc_t("unparse(kc_printer, kc_current_view );\
\n"), kc_current_view); }
} else
{
{ kc_printer(kc_t("default_unparse(kc_printer, kc_current_view );\
\n"), kc_current_view); }
}
break;
}
case view_gen_rewritedefs_args_c_enum: {
view_gen_rewritedefs_args_c_class& kc_current_view=static_cast<view_gen_rewritedefs_args_c_class&>(kc_current_view_base);
if ((this->arguments_1->prod_sel() == sel_Nilarguments)) {
const ID a_arg = this->ID_1;
if (!g_options.rw_loop)
{
{ kc_printer(kc_t("l_"), kc_current_view); }
}
kc::unparse(a_arg, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(this->seqnr, kc_printer, kc_current_view);
} else
{
const ID a_arg = this->ID_1;
const arguments r_args = this->arguments_1;
kc::unparse(r_args, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
if (!g_options.rw_loop)
{
{ kc_printer(kc_t("l_"), kc_current_view); }
}
kc::unparse(a_arg, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(this->seqnr, kc_printer, kc_current_view);
}
break;
}
case view_gen_rewritedefs_dotestarg_c_enum: {
view_gen_rewritedefs_dotestarg_c_class& kc_current_view=static_cast<view_gen_rewritedefs_dotestarg_c_class&>(kc_current_view_base);
if ((this->arguments_1->prod_sel() == sel_Nilarguments)) {
const ID a_arg = this->ID_1;
{ kc_printer(kc_t("l_"), kc_current_view); }
kc::unparse(a_arg, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(this->seqnr, kc_printer, kc_current_view);
{ kc_printer(kc_t(" == "), kc_current_view); }
kc::unparse(a_arg, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(this->seqnr, kc_printer, kc_current_view);
} else
{
const ID a_arg = this->ID_1;
const arguments r_args = this->arguments_1;
kc::unparse(r_args, kc_printer, kc_current_view);
{ kc_printer(kc_t(") && (l_"), kc_current_view); }
kc::unparse(a_arg, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(this->seqnr, kc_printer, kc_current_view);
{ kc_printer(kc_t(" == "), kc_current_view); }
kc::unparse(a_arg, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(this->seqnr, kc_printer, kc_current_view);
}
break;
}
case view_gen_rewritedefs_testarg_c_enum: {
view_gen_rewritedefs_testarg_c_class& kc_current_view=static_cast<view_gen_rewritedefs_testarg_c_class&>(kc_current_view_base);
{
gl_phylum = f_phylumofoperator(gl_operator);
if(!g_options.rw_loop)
{
{ kc_printer(kc_t(" if (("), kc_current_view); }
kc::unparse(this, kc_printer, view_gen_rewritedefs_dotestarg_c);
{ kc_printer(kc_t("))\
\n return this;\
\n else {\
\n impl_"), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
if(f_listelementphylum(gl_phylum)->eq(f_emptyId()))
{
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(gl_operator, kc_printer, kc_current_view);
}
{ kc_printer(kc_t("* kc_result= "), kc_current_view); }
kc::unparse(gl_operator, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(this, kc_printer, view_gen_rewritedefs_args_c);
{ kc_printer(kc_t(");\
\n kc_result->rewrite_members(this);\
\n return kc_result;\
\n }"), kc_current_view); }
}
else
{
{ kc_printer(kc_t(" return this;"), kc_current_view); }
}
gl_phylum = 0;
}
break;
}
case view_gen_rewritedefs_nl_arg_c_enum: {
view_gen_rewritedefs_nl_arg_c_class& kc_current_view=static_cast<view_gen_rewritedefs_nl_arg_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t(" kc_rp = (("), kc_current_view); }
kc::unparse(this, kc_printer, view_gen_rewritedefs_dotestarg_c);
{ kc_printer(kc_t("))\
\n ? this\
\n : "), kc_current_view); }
kc::unparse(gl_operator, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(this, kc_printer, view_gen_rewritedefs_args_c);
{ kc_printer(kc_t(");\
\n"), kc_current_view); }
}
break;
}
case view_gen_rewritedefs_rewritearg_c_enum: {
view_gen_rewritedefs_rewritearg_c_class& kc_current_view=static_cast<view_gen_rewritedefs_rewritearg_c_class&>(kc_current_view_base);
{
const ID a_arg = this->ID_1;
const arguments r_args = this->arguments_1;
kc::unparse(r_args, kc_printer, kc_current_view);
if (!g_options.rw_loop)
{
if(g_options.smart_pointer)
{
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(a_arg, kc_printer, kc_current_view);
{ kc_printer(kc_t("_ptr l_"), kc_current_view); }
kc::unparse(a_arg, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(this->seqnr, kc_printer, kc_current_view);
{ kc_printer(kc_t(" ="), kc_current_view); }
}
else
{
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(a_arg, kc_printer, kc_current_view);
{ kc_printer(kc_t(" l_"), kc_current_view); }
kc::unparse(a_arg, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(this->seqnr, kc_printer, kc_current_view);
{ kc_printer(kc_t(" ="), kc_current_view); }
}
{ kc_printer(kc_t("\n"), kc_current_view); }
if (g_options.covariant=='p')
{
{ kc_printer(kc_t("#ifndef NO_COVARIANT_RETURN\n"), kc_current_view); }
}
if (g_options.covariant!='n')
{
{ kc_printer(kc_t("\v"), kc_current_view); }
kc::unparse(a_arg, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(this->seqnr, kc_printer, kc_current_view);
{ kc_printer(kc_t("->rewrite(kc_current_view_base);\r\n"), kc_current_view); }
}
if (g_options.covariant=='p')
{
{ kc_printer(kc_t("#else\n"), kc_current_view); }
}
if (g_options.covariant!='y')
{
{ kc_printer(kc_t("\vstatic_cast<"), kc_current_view); }
kc::unparse(a_arg, kc_printer, kc_current_view);
{ kc_printer(kc_t(">("), kc_current_view); }
kc::unparse(a_arg, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(this->seqnr, kc_printer, kc_current_view);
{ kc_printer(kc_t("->rewrite(kc_current_view_base));\r\n"), kc_current_view); }
}
if (g_options.covariant=='p')
{
{ kc_printer(kc_t("#endif // NO_COVARIANT_RETURN\n"), kc_current_view); }
}
}
}
break;
}
case view_gen_test_enum: {
view_gen_test_class& kc_current_view=static_cast<view_gen_test_class&>(kc_current_view_base);
{
const arguments rargs = this->arguments_1;
bool isnotlist=f_listelementphylum(gl_phylum)->eq(f_emptyId());
kc::unparse(rargs, kc_printer, kc_current_view);
if(isnotlist)
{
{ kc_printer(kc_t(" && (dynamic_cast<impl_"), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(gl_operator, kc_printer, kc_current_view);
{ kc_printer(kc_t("*>(kc_x)->"), kc_current_view); }
}
else
{
{ kc_printer(kc_t(" && (kc_x->"), kc_current_view); }
}
kc::unparse(this, kc_printer, view_gen_argseqnr);
{ kc_printer(kc_t(" == _"), kc_current_view); }
kc::unparse(this, kc_printer, view_gen_argseqnr);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
case view_gen_assignment_inis_enum: {
view_gen_assignment_inis_class& kc_current_view=static_cast<view_gen_assignment_inis_class&>(kc_current_view_base);
if ((this->arguments_1->prod_sel() == sel_Nilarguments)) {
const ID a = this->ID_1;
kc::unparse(this, kc_printer, view_gen_argseqnr);
{ kc_printer(kc_t("(_"), kc_current_view); }
kc::unparse(this, kc_printer, view_gen_argseqnr);
{ kc_printer(kc_t(")"), kc_current_view); }
if (a->named_subphylum)
{
{ kc_printer(kc_t(", "), kc_current_view); }
kc::unparse(a->named_subphylum, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(this, kc_printer, view_gen_argseqnr);
{ kc_printer(kc_t(")"), kc_current_view); }
}
} else
{
const ID a = this->ID_1;
const arguments rargs = this->arguments_1;
kc::unparse(rargs, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
kc::unparse(this, kc_printer, view_gen_argseqnr);
{ kc_printer(kc_t("(_"), kc_current_view); }
kc::unparse(this, kc_printer, view_gen_argseqnr);
{ kc_printer(kc_t(")"), kc_current_view); }
if (a->named_subphylum)
{
{ kc_printer(kc_t(", "), kc_current_view); }
kc::unparse(a->named_subphylum, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(this, kc_printer, view_gen_argseqnr);
{ kc_printer(kc_t(")"), kc_current_view); }
}
}
break;
}
case view_gen_assignments_enum: {
view_gen_assignments_class& kc_current_view=static_cast<view_gen_assignments_class&>(kc_current_view_base);
{
const arguments rargs = this->arguments_1;
kc::unparse(rargs, kc_printer, kc_current_view);
kc::unparse(this, kc_printer, view_gen_argseqnr);
{ kc_printer(kc_t(" = _"), kc_current_view); }
kc::unparse(this, kc_printer, view_gen_argseqnr);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
}
break;
}
case view_gen_fnarg_and_decls_enum: {
view_gen_fnarg_and_decls_class& kc_current_view=static_cast<view_gen_fnarg_and_decls_class&>(kc_current_view_base);
if ((this->arguments_1->prod_sel() == sel_Nilarguments)) {
const ID a = this->ID_1;
kc::unparse(a, kc_printer, kc_current_view);
{ kc_printer(kc_t(" _"), kc_current_view); }
kc::unparse(this, kc_printer, view_gen_argseqnr);
} else
{
const ID a = this->ID_1;
const arguments rargs = this->arguments_1;
kc::unparse(rargs, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
kc::unparse(a, kc_printer, kc_current_view);
{ kc_printer(kc_t(" _"), kc_current_view); }
kc::unparse(this, kc_printer, view_gen_argseqnr);
}
break;
}
case view_gen_fnarg_asserts_enum: {
view_gen_fnarg_asserts_class& kc_current_view=static_cast<view_gen_fnarg_asserts_class&>(kc_current_view_base);
{
const ID a = this->ID_1;
const arguments rargs = this->arguments_1;
kc::unparse(rargs, kc_printer, kc_current_view);
{ kc_printer(kc_t("assertPhylum(_"), kc_current_view); }
kc::unparse(this, kc_printer, view_gen_argseqnr);
{ kc_printer(kc_t(", phylum_"), kc_current_view); }
kc::unparse(a, kc_printer, kc_current_view);
{ kc_printer(kc_t(");\n"), kc_current_view); }
}
break;
}
case view_gen_argseqnr_enum: {
view_gen_argseqnr_class& kc_current_view=static_cast<view_gen_argseqnr_class&>(kc_current_view_base);
{
const ID a = this->ID_1;
kc::unparse(a, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(this->seqnr, kc_printer, kc_current_view);
}
break;
}
case view_gen_attributeOf_function_enum: {
view_gen_attributeOf_function_class& kc_current_view=static_cast<view_gen_attributeOf_function_class&>(kc_current_view_base);
{
const ID a = this->ID_1;
const arguments ra = this->arguments_1;
kc::unparse(ra, kc_printer, kc_current_view);
ID ident;
ac_identifier_list idents = gl_idents;
for (int i=gl_idents->length(); i>gl_no_of_args; --i) {
{
ac_identifier_list kc_selvar_0_1 = phylum_cast<ac_identifier_list>(idents);
if ((kc_selvar_0_1->prod_sel() == sel_Consac_identifier_list)) {
const ID i = (kc_selvar_0_1)->ID_1;
const ac_identifier_list ri = (kc_selvar_0_1)->ac_identifier_list_1;
ident=i; idents=ri;
} else
kc_no_default_in_with( "", __LINE__, __FILE__ );
}
}
{ kc_printer(kc_t("case "), kc_current_view); }
kc::unparse(gl_no_of_args, kc_printer, kc_current_view);
{ kc_printer(kc_t(": return reinterpret_cast<abstract_phylum&>(phylum_cast<"), kc_current_view); }
kc::unparse(gl_operator, kc_printer, view_class_of_op);
{ kc_printer(kc_t("*>(kc_p)->"), kc_current_view); }
kc::unparse(ident, kc_printer, kc_current_view);
{ kc_printer(kc_t(");\n"), kc_current_view); }
++gl_no_of_args;
}
break;
}
case view_gen_create_function_enum: {
view_gen_create_function_class& kc_current_view=static_cast<view_gen_create_function_class&>(kc_current_view_base);
if ((this->arguments_1->prod_sel() == sel_Nilarguments)) {
const ID a = this->ID_1;
{ kc_printer(kc_t("phylum_cast<"), kc_current_view); }
kc::unparse(a, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(kc_p1)"), kc_current_view); }
gl_generic_counter=2;
} else
{
const ID a = this->ID_1;
const arguments ra = this->arguments_1;
kc::unparse(ra, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
{ kc_printer(kc_t("phylum_cast<"), kc_current_view); }
kc::unparse(a, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(kc_p"), kc_current_view); }
kc::unparse(gl_generic_counter, kc_printer, kc_current_view);
{ kc_printer(kc_t(")"), kc_current_view); }
++gl_generic_counter;
}
break;
}
case view_gen_operatorcast_h_enum: {
view_gen_operatorcast_h_class& kc_current_view=static_cast<view_gen_operatorcast_h_class&>(kc_current_view_base);
if ((this->arguments_1->prod_sel() == sel_Nilarguments)) {
const ID a = this->ID_1;
kc::unparse(a, kc_printer, kc_current_view);
} else
{
const ID a = this->ID_1;
const arguments rargs = this->arguments_1;
kc::unparse(rargs, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
kc::unparse(a, kc_printer, kc_current_view);
}
break;
}
case view_gen_operatordecls_h_enum: {
view_gen_operatordecls_h_class& kc_current_view=static_cast<view_gen_operatordecls_h_class&>(kc_current_view_base);
if ((this->arguments_1->prod_sel() == sel_Nilarguments)) {
const ID a = this->ID_1;
kc::unparse(a, kc_printer, kc_current_view);
} else
{
const ID a = this->ID_1;
const arguments rargs = this->arguments_1;
kc::unparse(rargs, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
kc::unparse(a, kc_printer, kc_current_view);
}
break;
}
case view_gen_nodetypes_h_enum: {
view_gen_nodetypes_h_class& kc_current_view=static_cast<view_gen_nodetypes_h_class&>(kc_current_view_base);
{
const ID a = this->ID_1;
const arguments rargs = this->arguments_1;
kc::unparse(rargs, kc_printer, kc_current_view);
if(g_options.smart_pointer)
{
kc::unparse(a, kc_printer, kc_current_view);
{ kc_printer(kc_t("_ptr "), kc_current_view); }
}
else
{
{ kc_printer(kc_t(" impl_"), kc_current_view); }
kc::unparse(a, kc_printer, kc_current_view);
{ kc_printer(kc_t("* "), kc_current_view); }
}
kc::unparse(a, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(this->seqnr, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\n"), kc_current_view); }
if (a->named_subphylum)
{
if(g_options.smart_pointer)
{
kc::unparse(a, kc_printer, kc_current_view);
{ kc_printer(kc_t("_ptr& "), kc_current_view); }
}
else
{
{ kc_printer(kc_t(" impl_"), kc_current_view); }
kc::unparse(a, kc_printer, kc_current_view);
{ kc_printer(kc_t("*& "), kc_current_view); }
}
kc::unparse(a->named_subphylum, kc_printer, kc_current_view);
{ kc_printer(kc_t(" /* = "), kc_current_view); }
kc::unparse(a, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(this->seqnr, kc_printer, kc_current_view);
{ kc_printer(kc_t("*/;\n"), kc_current_view); }
}
}
break;
}
case view_gen_operatormap_subphyla_enum: {
view_gen_operatormap_subphyla_class& kc_current_view=static_cast<view_gen_operatormap_subphyla_class&>(kc_current_view_base);
if ((this->arguments_1->prod_sel() == sel_Nilarguments)) {
const ID a = this->ID_1;
{ kc_printer(kc_t("phylum_"), kc_current_view); }
kc::unparse(a, kc_printer, kc_current_view);
} else
{
const ID a = this->ID_1;
const arguments ra = this->arguments_1;
kc::unparse(ra, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
{ kc_printer(kc_t("phylum_"), kc_current_view); }
kc::unparse(a, kc_printer, kc_current_view);
}
break;
}
case view_count_args_enum: {
view_count_args_class& kc_current_view=static_cast<view_count_args_class&>(kc_current_view_base);
{
const arguments ra = this->arguments_1;
kc::unparse(ra, kc_printer, kc_current_view);
gl_no_of_args++;
}
break;
}
case view_check_uniq1_enum: {
view_check_uniq1_class& kc_current_view=static_cast<view_check_uniq1_class&>(kc_current_view_base);
{
const ID id = this->ID_1;
const arguments rargs = this->arguments_1;
phylumdeclaration tmp = f_lookupdecl( id );
kc::unparse(rargs, kc_printer, kc_current_view);
if (tmp)
{
kc::unparse(tmp, kc_printer, view_check_uniq2);
}
}
break;
}
case view_check_count1_enum: {
view_check_count1_class& kc_current_view=static_cast<view_check_count1_class&>(kc_current_view_base);
{
const ID id = this->ID_1;
const arguments rargs = this->arguments_1;
kc::unparse(rargs, kc_printer, kc_current_view);
f_useoccurphylum( id );
this->seqnr = f_getcount( id );
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (arguments iterator_ = this; iterator_->arguments_1 != 0; iterator_ = iterator_->arguments_1)
iterator_->ID_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_arguments::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_rewritedefs_args_c_enum: {
view_gen_rewritedefs_args_c_class& kc_current_view=static_cast<view_gen_rewritedefs_args_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_rewritedefs_dotestarg_c_enum: {
view_gen_rewritedefs_dotestarg_c_class& kc_current_view=static_cast<view_gen_rewritedefs_dotestarg_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_rewritedefs_testarg_c_enum: {
view_gen_rewritedefs_testarg_c_class& kc_current_view=static_cast<view_gen_rewritedefs_testarg_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t(" return this;\
\n"), kc_current_view); }
}
break;
}
case view_gen_rewritedefs_nl_arg_c_enum: {
view_gen_rewritedefs_nl_arg_c_class& kc_current_view=static_cast<view_gen_rewritedefs_nl_arg_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t(" kc_rp = this;\
\n"), kc_current_view); }
}
break;
}
case view_gen_rewritedefs_rewritearg_c_enum: {
view_gen_rewritedefs_rewritearg_c_class& kc_current_view=static_cast<view_gen_rewritedefs_rewritearg_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_test_enum: {
view_gen_test_class& kc_current_view=static_cast<view_gen_test_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_assignments_predef_ini_enum: {
view_gen_assignments_predef_ini_class& kc_current_view=static_cast<view_gen_assignments_predef_ini_class&>(kc_current_view_base);
{
enum_operators kc_i = f_selofoperator(gl_operator);
PRINT(preDefTypeAndName[kc_i][1]);
{ kc_printer(kc_t("(_"), kc_current_view); }
PRINT(preDefTypeAndName[kc_i][1]);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
case view_gen_assignments_predef_enum: {
view_gen_assignments_predef_class& kc_current_view=static_cast<view_gen_assignments_predef_class&>(kc_current_view_base);
{
enum_operators kc_i = f_selofoperator(gl_operator);
PRINT(preDefTypeAndName[kc_i][1]);
{ kc_printer(kc_t(" = _"), kc_current_view); }
PRINT(preDefTypeAndName[kc_i][1]);
{ kc_printer(kc_t(";\n"), kc_current_view); }
}
break;
}
case view_gen_assignments_enum: {
view_gen_assignments_class& kc_current_view=static_cast<view_gen_assignments_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_fnarg_and_decls_predef_enum: {
view_gen_fnarg_and_decls_predef_class& kc_current_view=static_cast<view_gen_fnarg_and_decls_predef_class&>(kc_current_view_base);
{
enum_operators kc_i = f_selofoperator(gl_operator);
PRINT(preDefTypeAndName[kc_i][0]);
{ kc_printer(kc_t(" _"), kc_current_view); }
PRINT(preDefTypeAndName[kc_i][1]);
}
break;
}
case view_gen_fnarg_and_decls_enum: {
view_gen_fnarg_and_decls_class& kc_current_view=static_cast<view_gen_fnarg_and_decls_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_fnarg_asserts_enum: {
view_gen_fnarg_asserts_class& kc_current_view=static_cast<view_gen_fnarg_asserts_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_attributeOf_function_enum: {
view_gen_attributeOf_function_class& kc_current_view=static_cast<view_gen_attributeOf_function_class&>(kc_current_view_base);
{
gl_no_of_args=0;
}
break;
}
case view_gen_operatormap_subphyla_enum: {
view_gen_operatormap_subphyla_class& kc_current_view=static_cast<view_gen_operatormap_subphyla_class&>(kc_current_view_base);
{
}
break;
}
case view_count_args_enum: {
view_count_args_class& kc_current_view=static_cast<view_count_args_class&>(kc_current_view_base);
{
gl_no_of_args = 0;
}
break;
}
case view_check_uniq1_enum: {
view_check_uniq1_class& kc_current_view=static_cast<view_check_uniq1_class&>(kc_current_view_base);
{
}
break;
}
case view_check_count1_enum: {
view_check_count1_class& kc_current_view=static_cast<view_check_count1_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_argument_Argument::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ID id = this->ID_1;
const integer i = this->integer_1;
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(i, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_Ccode_option_CcodeOption::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_nodetypes_h_enum: {
view_gen_nodetypes_h_class& kc_current_view=static_cast<view_gen_nodetypes_h_class&>(kc_current_view_base);
{
const attributes a = this->attributes_1;
kc::unparse(a, kc_printer, kc_current_view);
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const attributes attr = this->attributes_1;
const Ctexts init = this->Ctexts_1;
kc::unparse(attr, kc_printer, kc_current_view);
kc::unparse(init, kc_printer, kc_current_view);
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const Ctexts ct = this->Ctexts_1;
kc::unparse(ct, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_attributes::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_copy_attributes_c_enum: {
view_gen_copy_attributes_c_class& kc_current_view=static_cast<view_gen_copy_attributes_c_class&>(kc_current_view_base);
if ((this->attribute_1->prod_sel() == sel_Attribute)) {
const ID aid = phylum_cast<const impl_attribute_Attribute*>(this->attribute_1)->ID_2;
const attributes ra = this->attributes_1;
kc::unparse(ra, kc_printer, kc_current_view);
{ kc_printer(kc_t(" p2->"), kc_current_view); }
kc::unparse(aid, kc_printer, kc_current_view);
{ kc_printer(kc_t(" = p1->"), kc_current_view); }
kc::unparse(aid, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
} else
goto kc_unparsing_default;
break;
}
case view_gen_nodetypes_h_enum: {
view_gen_nodetypes_h_class& kc_current_view=static_cast<view_gen_nodetypes_h_class&>(kc_current_view_base);
if ((this->attribute_1->prod_sel() == sel_Attribute)) {
const ID t = phylum_cast<const impl_attribute_Attribute*>(this->attribute_1)->ID_1;
const ID id = phylum_cast<const impl_attribute_Attribute*>(this->attribute_1)->ID_2;
const attributes ra = this->attributes_1;
kc::unparse(ra, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
} else
goto kc_unparsing_default;
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
if ((this->attribute_1->prod_sel() == sel_Attribute) && (phylum_cast<const impl_attribute_Attribute*>(this->attribute_1)->attribute_initialisation_option_1->prod_sel() == sel_Yesattribute_initialisation)) {
const ID aid = phylum_cast<const impl_attribute_Attribute*>(this->attribute_1)->ID_2;
const Cexpression cexpr = phylum_cast<const impl_attribute_initialisation_option_Yesattribute_initialisation*>(phylum_cast<const impl_attribute_Attribute*>(this->attribute_1)->attribute_initialisation_option_1)->Cexpression_1;
const attributes ra = this->attributes_1;
ID selvar;
kc::unparse(ra, kc_printer, kc_current_view);
selvar = Id(Str(mkcasestring("kc_x")));
selvar->line = aid->line;
selvar->file = aid->file;
dollarvarstack.push( selvar );
dollarvarextstack.push( f_emptyId() );
operatorstack.push( f_emptyId() );
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(aid->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(aid->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
{ kc_printer(kc_t(" kc_x->"), kc_current_view); }
kc::unparse(aid, kc_printer, kc_current_view);
{ kc_printer(kc_t(" = "), kc_current_view); }
kc::unparse(cexpr, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
dollarvarstack.pop();
dollarvarextstack.pop();
operatorstack.pop();
} else
if ((this->attribute_1->prod_sel() == sel_Attribute) && (phylum_cast<const impl_attribute_Attribute*>(this->attribute_1)->attribute_initialisation_option_1->prod_sel() == sel_Noattribute_initialisation)) {
const attributes ra = this->attributes_1;
kc::unparse(ra, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (attributes iterator_ = this; iterator_->attributes_1 != 0; iterator_ = iterator_->attributes_1)
iterator_->attribute_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_attributes::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_copy_attributes_c_enum: {
view_gen_copy_attributes_c_class& kc_current_view=static_cast<view_gen_copy_attributes_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_nodetypes_h_enum: {
view_gen_nodetypes_h_class& kc_current_view=static_cast<view_gen_nodetypes_h_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_attribute_Attribute::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_attribute_initialisation_option_Yesattribute_initialisation::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_attribute_initialisation_option_Noattribute_initialisation::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_Cexpression::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_user_predicates_enum: {
view_gen_user_predicates_class& kc_current_view=static_cast<view_gen_user_predicates_class&>(kc_current_view_base);
{
const Cexpression_elem ce = this->Cexpression_elem_1;
const Cexpression ces = this->Cexpression_1;
kc::unparse(ces, kc_printer, kc_current_view);
kc::unparse(ce, kc_printer, kc_current_view);
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const Cexpression_elem ce = this->Cexpression_elem_1;
const Cexpression ces = this->Cexpression_1;
kc::unparse(ces, kc_printer, kc_current_view);
kc::unparse(ce, kc_printer, kc_current_view);
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const Cexpression_elem h = this->Cexpression_elem_1;
const Cexpression t = this->Cexpression_1;
kc::unparse(t, kc_printer, kc_current_view);
kc::unparse(h, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (Cexpression iterator_ = this; iterator_->Cexpression_1 != 0; iterator_ = iterator_->Cexpression_1)
iterator_->Cexpression_elem_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_Cexpression::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_user_predicates_enum: {
view_gen_user_predicates_class& kc_current_view=static_cast<view_gen_user_predicates_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_Cexpression_elem_CExpressionArray::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_user_predicates_enum: {
view_gen_user_predicates_class& kc_current_view=static_cast<view_gen_user_predicates_class&>(kc_current_view_base);
{
const Cexpression cexpr = this->Cexpression_1;
{ kc_printer(kc_t("["), kc_current_view); }
kc::unparse(cexpr, kc_printer, kc_current_view);
{ kc_printer(kc_t("]"), kc_current_view); }
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const Cexpression cexpr = this->Cexpression_1;
{ kc_printer(kc_t("["), kc_current_view); }
kc::unparse(cexpr, kc_printer, kc_current_view);
{ kc_printer(kc_t("]"), kc_current_view); }
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const Cexpression ce = this->Cexpression_1;
{ kc_printer(kc_t("["), kc_current_view); }
kc::unparse(ce, kc_printer, kc_current_view);
{ kc_printer(kc_t("]"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_Cexpression_elem_CExpressionPack::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_user_predicates_enum: {
view_gen_user_predicates_class& kc_current_view=static_cast<view_gen_user_predicates_class&>(kc_current_view_base);
{
const Cexpression cexpr = this->Cexpression_1;
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(cexpr, kc_printer, kc_current_view);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const Cexpression cexpr = this->Cexpression_1;
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(cexpr, kc_printer, kc_current_view);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const Cexpression ce = this->Cexpression_1;
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(ce, kc_printer, kc_current_view);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_Cexpression_elem_CExpressionSQ::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_user_predicates_enum: {
view_gen_user_predicates_class& kc_current_view=static_cast<view_gen_user_predicates_class&>(kc_current_view_base);
{
const CexpressionSQ cesq = this->CexpressionSQ_1;
{ kc_printer(kc_t("'"), kc_current_view); }
kc::unparse(cesq, kc_printer, kc_current_view);
{ kc_printer(kc_t("'"), kc_current_view); }
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const CexpressionSQ cesq = this->CexpressionSQ_1;
{ kc_printer(kc_t("'"), kc_current_view); }
kc::unparse(cesq, kc_printer, kc_current_view);
{ kc_printer(kc_t("'"), kc_current_view); }
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const CexpressionSQ cesq = this->CexpressionSQ_1;
{ kc_printer(kc_t("'"), kc_current_view); }
kc::unparse(cesq, kc_printer, kc_current_view);
{ kc_printer(kc_t("'"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_Cexpression_elem_CExpressionDQ::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_user_predicates_enum: {
view_gen_user_predicates_class& kc_current_view=static_cast<view_gen_user_predicates_class&>(kc_current_view_base);
{
const CexpressionDQ cedq = this->CexpressionDQ_1;
{ kc_printer(kc_t("\""), kc_current_view); }
kc::unparse(cedq, kc_printer, kc_current_view);
{ kc_printer(kc_t("\""), kc_current_view); }
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const CexpressionDQ cedq = this->CexpressionDQ_1;
{ kc_printer(kc_t("\""), kc_current_view); }
kc::unparse(cedq, kc_printer, kc_current_view);
{ kc_printer(kc_t("\""), kc_current_view); }
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const CexpressionDQ cedq = this->CexpressionDQ_1;
{ kc_printer(kc_t("\""), kc_current_view); }
kc::unparse(cedq, kc_printer, kc_current_view);
{ kc_printer(kc_t("\""), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_Cexpression_elem_CExpressionNl::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_user_predicates_enum: {
view_gen_user_predicates_class& kc_current_view=static_cast<view_gen_user_predicates_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("\n"), kc_current_view); }
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("\n"), kc_current_view); }
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
{ kc_printer(kc_t(" "), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_Cexpression_elem_CExpressionDollarvar::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const INT i = this->INT_1;
ID oid = f_emptyId(), dollarvar = dollarvarstack.top(), dollarvarext = dollarvarextstack.top();
argument arg;
bool nulvar = true;
{
INT kc_selvar_0_1 = phylum_cast<INT>( i );
if ((kc_selvar_0_1->prod_sel() == sel_Int)) {
const integer ii = phylum_cast<const impl_INT_Int*>(kc_selvar_0_1)->integer_1;
if (ii->value != 0) {
nulvar = false;
oid = operatorstack.top();
arg = f_argumentofoperator( oid, i );
}
} else
kc_no_default_in_with( "", __LINE__, __FILE__ );
}
if (nulvar)
{
kc::unparse(dollarvar, kc_printer, kc_current_view);
kc::unparse(dollarvarext, kc_printer, kc_current_view);
}
else
{
kc::unparse(dollarvar, kc_printer, kc_current_view);
kc::unparse(dollarvarext, kc_printer, kc_current_view);
{ kc_printer(kc_t("->"), kc_current_view); }
kc::unparse(arg, kc_printer, kc_current_view);
arg->free( false );
}
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const INT i = this->INT_1;
{ kc_printer(kc_t("$"), kc_current_view); }
kc::unparse(i, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_Cexpression_elem_CExpressionPart::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_user_predicates_enum: {
view_gen_user_predicates_class& kc_current_view=static_cast<view_gen_user_predicates_class&>(kc_current_view_base);
{
const casestring cs = this->casestring_1;
std::map<string, path>::iterator p; char const *c=cs->name; std::string s;
#ifdef KIMWITUVERSIONMAJOR
#define kc_uviews uviews
#endif
while (*c) {
s=f_getidentfromstring(&c);
p=gl_bindings.find(s);
if (p!=gl_bindings.end()) {
path path_temp=p->second;
{
path kc_selvar_0_1 = phylum_cast<path>(path_temp);
if ((kc_selvar_0_1->prod_sel() == sel_Conspath)) {
const path r_p = (kc_selvar_0_1)->path_1;
r_p->unparse(kc_printer, view_gen_cast);
path_temp->unparse(kc_printer, *kc_uviews[gl_outer_view].view);
} else
if ((kc_selvar_0_1->prod_sel() == sel_Nilpath)) {
path_temp->unparse(kc_printer, *kc_uviews[gl_outer_view].view);
} else
kc_no_default_in_with( "", __LINE__, __FILE__ );
}
}
else {
PRINT(s.c_str());
}
}
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const casestring cs = this->casestring_1;
kc::unparse(cs, kc_printer, kc_current_view);
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const casestring s = this->casestring_1;
kc::unparse(s, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_CexpressionDQ::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_output_collection_enum: {
view_output_collection_class& kc_current_view=static_cast<view_output_collection_class&>(kc_current_view_base);
{
const CexpressionDQ_elem cedqe = this->CexpressionDQ_elem_1;
const CexpressionDQ cedq = this->CexpressionDQ_1;
kc::unparse(cedq, kc_printer, kc_current_view);
kc::unparse(cedqe, kc_printer, kc_current_view);
}
break;
}
case view_gen_unpstr_c_enum: {
view_gen_unpstr_c_class& kc_current_view=static_cast<view_gen_unpstr_c_class&>(kc_current_view_base);
{
const CexpressionDQ_elem cedqe = this->CexpressionDQ_elem_1;
const CexpressionDQ cedq = this->CexpressionDQ_1;
kc::unparse(cedq, kc_printer, kc_current_view);
kc::unparse(cedqe, kc_printer, kc_current_view);
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const CexpressionDQ_elem cedqe = this->CexpressionDQ_elem_1;
const CexpressionDQ cedq = this->CexpressionDQ_1;
kc::unparse(cedq, kc_printer, kc_current_view);
kc::unparse(cedqe, kc_printer, kc_current_view);
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const CexpressionDQ_elem h = this->CexpressionDQ_elem_1;
const CexpressionDQ t = this->CexpressionDQ_1;
kc::unparse(t, kc_printer, kc_current_view);
kc::unparse(h, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (CexpressionDQ iterator_ = this; iterator_->CexpressionDQ_1 != 0; iterator_ = iterator_->CexpressionDQ_1)
iterator_->CexpressionDQ_elem_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_CexpressionDQ::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_unpstr_c_enum: {
view_gen_unpstr_c_class& kc_current_view=static_cast<view_gen_unpstr_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_CexpressionDQ_elem_CExpressionDQNl::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_output_collection_enum: {
view_output_collection_class& kc_current_view=static_cast<view_output_collection_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("\\\n\\n"), kc_current_view); }
}
break;
}
case view_gen_unpstr_c_enum: {
view_gen_unpstr_c_class& kc_current_view=static_cast<view_gen_unpstr_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("\\\n\\n"), kc_current_view); }
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("\n"), kc_current_view); }
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
{ kc_printer(kc_t(" "), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_CexpressionDQ_elem_CExpressionDQPart::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_output_collection_enum: {
view_output_collection_class& kc_current_view=static_cast<view_output_collection_class&>(kc_current_view_base);
{
const casestring cs = this->casestring_1;
kc::unparse(cs, kc_printer, kc_current_view);
}
break;
}
case view_gen_unpstr_c_enum: {
view_gen_unpstr_c_class& kc_current_view=static_cast<view_gen_unpstr_c_class&>(kc_current_view_base);
{
const casestring cs = this->casestring_1;
kc::unparse(cs, kc_printer, kc_current_view);
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const casestring cs = this->casestring_1;
kc::unparse(cs, kc_printer, kc_current_view);
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const casestring s = this->casestring_1;
kc::unparse(s, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_CexpressionSQ::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const CexpressionSQ_elem cesqe = this->CexpressionSQ_elem_1;
const CexpressionSQ cesq = this->CexpressionSQ_1;
kc::unparse(cesq, kc_printer, kc_current_view);
kc::unparse(cesqe, kc_printer, kc_current_view);
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const CexpressionSQ_elem h = this->CexpressionSQ_elem_1;
const CexpressionSQ t = this->CexpressionSQ_1;
kc::unparse(t, kc_printer, kc_current_view);
kc::unparse(h, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (CexpressionSQ iterator_ = this; iterator_->CexpressionSQ_1 != 0; iterator_ = iterator_->CexpressionSQ_1)
iterator_->CexpressionSQ_elem_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_CexpressionSQ::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_CexpressionSQ_elem_CExpressionSQNl::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("\n"), kc_current_view); }
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
{ kc_printer(kc_t(" "), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_CexpressionSQ_elem_CExpressionSQPart::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const casestring cs = this->casestring_1;
kc::unparse(cs, kc_printer, kc_current_view);
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const casestring s = this->casestring_1;
kc::unparse(s, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_idCexpressions::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_initializephyla_update_loop_c_enum: {
view_gen_initializephyla_update_loop_c_class& kc_current_view=static_cast<view_gen_initializephyla_update_loop_c_class&>(kc_current_view_base);
if ((this->idCexpression_1->prod_sel() == sel_IdCexpression)) {
const ID tid = phylum_cast<const impl_idCexpression_IdCexpression*>(this->idCexpression_1)->ID_1;
const Cexpression cexpr = phylum_cast<const impl_idCexpression_IdCexpression*>(this->idCexpression_1)->Cexpression_1;
const idCexpressions t = this->idCexpressions_1;
kc::unparse(t, kc_printer, kc_current_view);
g_fe_selvar_nr++;
{ kc_printer(kc_t("kc_fe_selvar_"), kc_current_view); }
kc::unparse(g_fe_selvar_nr, kc_printer, kc_current_view);
{ kc_printer(kc_t(" = kc_fe_selvar_"), kc_current_view); }
kc::unparse(g_fe_selvar_nr, kc_printer, kc_current_view);
{ kc_printer(kc_t("->"), kc_current_view); }
kc::unparse(tid, kc_printer, kc_current_view);
{ kc_printer(kc_t("_1;\n"), kc_current_view); }
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(cexpr->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(cexpr->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
} else
goto kc_unparsing_default;
break;
}
case view_gen_initializephyla_init_el_c_enum: {
view_gen_initializephyla_init_el_c_class& kc_current_view=static_cast<view_gen_initializephyla_init_el_c_class&>(kc_current_view_base);
if ((this->idCexpression_1->prod_sel() == sel_IdCexpression)) {
const ID tid = phylum_cast<const impl_idCexpression_IdCexpression*>(this->idCexpression_1)->ID_1;
const idCexpressions t = this->idCexpressions_1;
ID element_type = f_listelementphylum( tid );
ID selvar = cf_topselvar();
kc::unparse(t, kc_printer, kc_current_view);
g_fe_selvar_nr++;
kc::unparse(element_type, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(selvar, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(g_fe_selvar_nr, kc_printer, kc_current_view);
{ kc_printer(kc_t(" = kc_fe_selvar_"), kc_current_view); }
kc::unparse(g_fe_selvar_nr, kc_printer, kc_current_view);
{ kc_printer(kc_t("->"), kc_current_view); }
kc::unparse(element_type, kc_printer, kc_current_view);
{ kc_printer(kc_t("_1;\
\n"), kc_current_view); }
} else
goto kc_unparsing_default;
break;
}
case view_gen_initializephyla_whiletest_c_enum: {
view_gen_initializephyla_whiletest_c_class& kc_current_view=static_cast<view_gen_initializephyla_whiletest_c_class&>(kc_current_view_base);
if ((this->idCexpression_1->prod_sel() == sel_IdCexpression) && (this->idCexpressions_1->prod_sel() == sel_NilidCexpressions)) {
const ID tid = phylum_cast<const impl_idCexpression_IdCexpression*>(this->idCexpression_1)->ID_1;
const idCexpressions t = this->idCexpressions_1;
kc::unparse(t, kc_printer, kc_current_view);
g_fe_selvar_nr++;
{ kc_printer(kc_t(" kc_fe_selvar_"), kc_current_view); }
kc::unparse(g_fe_selvar_nr, kc_printer, kc_current_view);
{ kc_printer(kc_t("->prod_sel() == sel_Cons"), kc_current_view); }
kc::unparse(tid, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n"), kc_current_view); }
} else
if ((this->idCexpression_1->prod_sel() == sel_IdCexpression)) {
const ID tid = phylum_cast<const impl_idCexpression_IdCexpression*>(this->idCexpression_1)->ID_1;
const idCexpressions t = this->idCexpressions_1;
kc::unparse(t, kc_printer, kc_current_view);
g_fe_selvar_nr++;
{ kc_printer(kc_t(" && kc_fe_selvar_"), kc_current_view); }
kc::unparse(g_fe_selvar_nr, kc_printer, kc_current_view);
{ kc_printer(kc_t("->prod_sel() == sel_Cons"), kc_current_view); }
kc::unparse(tid, kc_printer, kc_current_view);
{ kc_printer(kc_t("\
\n"), kc_current_view); }
} else
goto kc_unparsing_default;
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
if ((this->idCexpression_1->prod_sel() == sel_IdCexpression)) {
const ID tid = phylum_cast<const impl_idCexpression_IdCexpression*>(this->idCexpression_1)->ID_1;
const Cexpression cexpr = phylum_cast<const impl_idCexpression_IdCexpression*>(this->idCexpression_1)->Cexpression_1;
const idCexpressions t = this->idCexpressions_1;
kc::unparse(t, kc_printer, kc_current_view);
g_fe_selvar_nr++;
if (cexpr->line)
{
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(cexpr->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(cexpr->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
}
kc::unparse(tid, kc_printer, kc_current_view);
{ kc_printer(kc_t(" kc_fe_selvar_"), kc_current_view); }
kc::unparse(g_fe_selvar_nr, kc_printer, kc_current_view);
{ kc_printer(kc_t(" = "), kc_current_view); }
kc::unparse(cexpr, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
} else
goto kc_unparsing_default;
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const idCexpression h = this->idCexpression_1;
const idCexpressions t = this->idCexpressions_1;
kc::unparse(t, kc_printer, kc_current_view);
kc::unparse(h, kc_printer, kc_current_view);
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (idCexpressions iterator_ = this; iterator_->idCexpressions_1 != 0; iterator_ = iterator_->idCexpressions_1)
iterator_->idCexpression_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_idCexpressions::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_initializephyla_update_loop_c_enum: {
view_gen_initializephyla_update_loop_c_class& kc_current_view=static_cast<view_gen_initializephyla_update_loop_c_class&>(kc_current_view_base);
{
g_fe_selvar_nr = 0;
}
break;
}
case view_gen_initializephyla_init_el_c_enum: {
view_gen_initializephyla_init_el_c_class& kc_current_view=static_cast<view_gen_initializephyla_init_el_c_class&>(kc_current_view_base);
{
g_fe_selvar_nr = 0;
}
break;
}
case view_gen_initializephyla_whiletest_c_enum: {
view_gen_initializephyla_whiletest_c_class& kc_current_view=static_cast<view_gen_initializephyla_whiletest_c_class&>(kc_current_view_base);
{
g_fe_selvar_nr = 0;
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
g_fe_selvar_nr = 0;
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_idCexpression_IdCexpression::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const ID t = this->ID_1;
f_useoccurlistphylum( t );
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_Ctexts::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const Ctext ct = this->Ctext_1;
const Ctexts cts = this->Ctexts_1;
ID selvar;
kc::unparse(cts, kc_printer, kc_current_view);
selvar = Id(Str(mkcasestring("kc_x")));
selvar->line = ct->line;
selvar->file = ct->file;
dollarvarstack.push( selvar );
dollarvarextstack.push( f_emptyId() );
operatorstack.push( f_emptyId() );
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(ct->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(ct->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
kc::unparse(ct, kc_printer, kc_current_view);
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
dollarvarstack.pop();
dollarvarextstack.pop();
operatorstack.pop();
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (Ctexts iterator_ = this; iterator_->Ctexts_1 != 0; iterator_ = iterator_->Ctexts_1)
iterator_->Ctext_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_Ctexts::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_includefiles::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (includefiles iterator_ = this; iterator_->includefiles_1 != 0; iterator_ = iterator_->includefiles_1)
iterator_->includefile_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_includefiles::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_includefile_IncludeFile::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_includedeclarations::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_do_gen_includes_enum: {
view_do_gen_includes_class& kc_current_view=static_cast<view_do_gen_includes_class&>(kc_current_view_base);
{
const includedeclaration e = this->includedeclaration_1;
const includedeclarations l = this->includedeclarations_1;
kc::unparse(l, kc_printer, kc_current_view);
kc::unparse(e, kc_printer, kc_current_view);
}
break;
}
case view_gen_includes_enum: {
view_gen_includes_class& kc_current_view=static_cast<view_gen_includes_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("namespace kc { }\
\nusing namespace kc;\
\n/* included stuff */\
\n"), kc_current_view); }
kc::unparse(this, kc_printer, view_do_gen_includes);
{ kc_printer(kc_t("/* end included stuff */\
\n\
\n"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (includedeclarations iterator_ = this; iterator_->includedeclarations_1 != 0; iterator_ = iterator_->includedeclarations_1)
iterator_->includedeclaration_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_includedeclarations::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_do_gen_includes_enum: {
view_do_gen_includes_class& kc_current_view=static_cast<view_do_gen_includes_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_includes_enum: {
view_gen_includes_class& kc_current_view=static_cast<view_gen_includes_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_includedeclaration_IncludeDeclaration::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_do_gen_includes_enum: {
view_do_gen_includes_class& kc_current_view=static_cast<view_do_gen_includes_class&>(kc_current_view_base);
{
const casestring i = this->casestring_1;
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(this->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(this->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
kc::unparse(i, kc_printer, kc_current_view);
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_rwdeclarations::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const rwdeclaration rwd = this->rwdeclaration_1;
const rwdeclarations rrwd = this->rwdeclarations_1;
kc::unparse(rrwd, kc_printer, kc_current_view);
kc::unparse(rwd, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (rwdeclarations iterator_ = this; iterator_->rwdeclarations_1 != 0; iterator_ = iterator_->rwdeclarations_1)
iterator_->rwdeclaration_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_rwdeclarations::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_rwdeclaration_RwDeclaration::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_make_patternreps_enum: {
view_make_patternreps_class& kc_current_view=static_cast<view_make_patternreps_class&>(kc_current_view_base);
{
const outmostpatterns op = this->outmostpatterns_1;
const rewriteclauses rc = this->rewriteclauses_1;
v_resetbindingidmarks();
v_add_rewriterulesinfo_to_operator(
add_predicates_to_patternrepresentations( syn_outmostpatterns( op ) ), rc );
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const outmostpatterns op = this->outmostpatterns_1;
const rewriteclauses rc = this->rewriteclauses_1;
outmostoperators.push( Niloperators() );
dollarvarsallowed.push( DVAllowed() );
phylumstack.push( f_emptyId() );
variablesstack.push( Nilvariables());
cl_scope++;
kc::unparse(op, kc_printer, kc_current_view);
kc::unparse(rc, kc_printer, kc_current_view);
outmostoperators.top()->freelist();
outmostoperators.pop(); phylumstack.pop();
dollarvarsallowed.pop();
v_reset_variables_type( variablesstack.top() );
cl_scope--;
variablesstack.top()->freelist();
variablesstack.pop();
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_rewriteclauses::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const rewriteclause rc = this->rewriteclause_1;
const rewriteclauses rcs = this->rewriteclauses_1;
kc::unparse(rcs, kc_printer, kc_current_view);
kc::unparse(rc, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (rewriteclauses iterator_ = this; iterator_->rewriteclauses_1 != 0; iterator_ = iterator_->rewriteclauses_1)
iterator_->rewriteclause_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_rewriteclauses::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_rewriteclause_RewriteClause::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const viewnames vn = this->viewnames_1;
kc::unparse(vn, kc_printer, view_check_r);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_patternchains::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_set_type_enum: {
view_set_type_class& kc_current_view=static_cast<view_set_type_class&>(kc_current_view_base);
{
const patternchain h = this->patternchain_1;
const patternchains t = this->patternchains_1;
kc::unparse(t, kc_printer, kc_current_view);
kc::unparse(h, kc_printer, kc_current_view);
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const patternchain h = this->patternchain_1;
const patternchains t = this->patternchains_1;
kc::unparse(t, kc_printer, kc_current_view);
kc::unparse(h, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (patternchains iterator_ = this; iterator_->patternchains_1 != 0; iterator_ = iterator_->patternchains_1)
iterator_->patternchain_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_patternchains::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_set_type_enum: {
view_set_type_class& kc_current_view=static_cast<view_set_type_class&>(kc_current_view_base);
{
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_patternchain::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_set_type_enum: {
view_set_type_class& kc_current_view=static_cast<view_set_type_class&>(kc_current_view_base);
{
const patternchainitem h = this->patternchainitem_1;
const patternchain t = this->patternchain_1;
ID tmp_type = 0;
phylumnames tmp_types = 0;
{
phylumnames kc_selvar_0_1 = phylum_cast<phylumnames>( phylumnamesstack.top() );
if ((kc_selvar_0_1->prod_sel() == sel_Nilphylumnames)) {
tmp_type = f_emptyId();
tmp_types = Nilphylumnames();
} else
if ((kc_selvar_0_1->prod_sel() == sel_Consphylumnames)) {
const ID p_h = (kc_selvar_0_1)->ID_1;
const phylumnames p_t = (kc_selvar_0_1)->phylumnames_1;
tmp_type = p_h;
tmp_types = p_t;
} else
kc_no_default_in_with( "", __LINE__, __FILE__ );
}
phylumnamesstack.pop();
phylumnamesstack.push( tmp_types );
kc::unparse(t, kc_printer, kc_current_view);
tmp_types = phylumnamesstack.top();
phylumnamesstack.pop();
phylumstack.push( tmp_type );
if (! phylumstack.top()->eq( f_emptyId() )) {
h->type = phylumstack.top();
}
kc::unparse(h, kc_printer, kc_current_view);
tmp_type = phylumstack.top();
phylumstack.pop();
phylumnamesstack.push( Consphylumnames( tmp_type, tmp_types ) );
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
if ((this->patternchainitem_1->prod_sel() == sel_PatternchainitemOutmost) && (phylum_cast<const impl_patternchainitem_PatternchainitemOutmost*>(this->patternchainitem_1)->outmostpattern_1->prod_sel() == sel_OPDefault) && (this->patternchain_1->prod_sel() == sel_Conspatternchain) && ((this->patternchain_1)->patternchainitem_1->prod_sel() == sel_PatternchainitemOutmost) && (phylum_cast<const impl_patternchainitem_PatternchainitemOutmost*>((this->patternchain_1)->patternchainitem_1)->outmostpattern_1->prod_sel() == sel_OPDefault)) {
const patternchainitem p = this->patternchainitem_1;
v_report(NonFatal( FileLine( p->file, p->line ),
Problem1S( "'default' can not be &-ed with (other) patterns")));
} else
if ((this->patternchainitem_1->prod_sel() == sel_PatternchainitemOutmost) && (phylum_cast<const impl_patternchainitem_PatternchainitemOutmost*>(this->patternchainitem_1)->outmostpattern_1->prod_sel() == sel_OPDefault) && (this->patternchain_1->prod_sel() == sel_Nilpatternchain)) {
} else
if ((this->patternchainitem_1->prod_sel() == sel_PatternchainitemOutmost) && (phylum_cast<const impl_patternchainitem_PatternchainitemOutmost*>(this->patternchainitem_1)->outmostpattern_1->prod_sel() == sel_OPDefault) && (this->patternchain_1->prod_sel() == sel_Conspatternchain)) {
const patternchainitem p = this->patternchainitem_1;
v_report(NonFatal( FileLine( p->file, p->line ),
Problem1S( "'default' can not be &-ed with (other) patterns")));
} else
if ((this->patternchain_1->prod_sel() == sel_Conspatternchain) && ((this->patternchain_1)->patternchainitem_1->prod_sel() == sel_PatternchainitemOutmost) && (phylum_cast<const impl_patternchainitem_PatternchainitemOutmost*>((this->patternchain_1)->patternchainitem_1)->outmostpattern_1->prod_sel() == sel_OPDefault)) {
const patternchainitem p = (this->patternchain_1)->patternchainitem_1;
v_report(NonFatal( FileLine( p->file, p->line ),
Problem1S( "'default' can not be &-ed with (other) patterns")));
} else
{
const patternchain p = this/**/;
const patternchainitem h = this->patternchainitem_1;
const patternchain t = this->patternchain_1;
ID tmp_type = 0;
phylumnames tmp_types = 0;
{
phylumnames kc_selvar_0_1 = phylum_cast<phylumnames>( phylumnamesstack.top() );
if ((kc_selvar_0_1->prod_sel() == sel_Nilphylumnames)) {
tmp_type = f_emptyId();
tmp_types = Nilphylumnames();
v_report(NonFatal( FileLine( p->file, p->line ),
Problem1S( "more &-ed patterns than expressions")));
} else
if ((kc_selvar_0_1->prod_sel() == sel_Consphylumnames)) {
const ID p_h = (kc_selvar_0_1)->ID_1;
const phylumnames p_t = (kc_selvar_0_1)->phylumnames_1;
tmp_type = p_h;
tmp_types = p_t;
} else
kc_no_default_in_with( "", __LINE__, __FILE__ );
}
phylumnamesstack.pop();
phylumnamesstack.push( tmp_types );
kc::unparse(t, kc_printer, kc_current_view);
tmp_types = phylumnamesstack.top();
phylumnamesstack.pop();
phylumstack.push( tmp_type );
kc::unparse(h, kc_printer, kc_current_view);
tmp_type = phylumstack.top();
phylumstack.pop();
phylumnamesstack.push( Consphylumnames( tmp_type, tmp_types ) );
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (patternchain iterator_ = this; iterator_->patternchain_1 != 0; iterator_ = iterator_->patternchain_1)
iterator_->patternchainitem_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_patternchain::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_set_type_enum: {
view_set_type_class& kc_current_view=static_cast<view_set_type_class&>(kc_current_view_base);
{
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const patternchain p = this/**/;
{
phylumnames kc_selvar_0_1 = phylum_cast<phylumnames>( phylumnamesstack.top() );
if ((kc_selvar_0_1->prod_sel() == sel_Nilphylumnames)) {
/* EMPTY */
} else
if ((kc_selvar_0_1->prod_sel() == sel_Consphylumnames)) {
const ID p_h = (kc_selvar_0_1)->ID_1;
const phylumnames p_t = (kc_selvar_0_1)->phylumnames_1;
v_report(NonFatal( FileLine( p->file, p->line ),
Problem1S( "fewer &-ed patterns than expressions")));
} else
kc_no_default_in_with( "", __LINE__, __FILE__ );
}
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_outmostpatterns::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const outmostpattern p = this->outmostpattern_1;
const outmostpatterns rp = this->outmostpatterns_1;
kc::unparse(rp, kc_printer, kc_current_view);
kc::unparse(p, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (outmostpatterns iterator_ = this; iterator_->outmostpatterns_1 != 0; iterator_ = iterator_->outmostpatterns_1)
iterator_->outmostpattern_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_outmostpatterns::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_patternchainitem_PatternchainitemDollarid::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_patternchainitem_PatternchainitemGroup::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_set_type_enum: {
view_set_type_class& kc_current_view=static_cast<view_set_type_class&>(kc_current_view_base);
{
const patternchains mp = this->patternchains_1;
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const patternchainitem mpg = this/**/;
const patternchains mp = this->patternchains_1;
v_report( NonFatal( FileLine( mpg->file, mpg->line ),
Problem1S( "Internal Error: PatternchainitemGroup was not handled correctly" )));
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_patternchainitem_PatternchainitemOutmost::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_set_type_enum: {
view_set_type_class& kc_current_view=static_cast<view_set_type_class&>(kc_current_view_base);
{
const outmostpattern p = this->outmostpattern_1;
if (! phylumstack.top()->eq( f_emptyId() ))
{
p->type = phylumstack.top();
}
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const outmostpattern p = this->outmostpattern_1;
if (inforeachcontext.top()!=0)
{
kc::unparse(p, kc_printer, view_check_is_var);
}
else
{
kc::unparse(p, kc_printer, view_check_outmostopers_in_phylum);
}
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_outmostpattern_OPDefault::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_check_is_var_enum: {
view_check_is_var_class& kc_current_view=static_cast<view_check_is_var_class&>(kc_current_view_base);
{
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_outmostpattern_OPWildcard::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_check_is_var_enum: {
view_check_is_var_class& kc_current_view=static_cast<view_check_is_var_class&>(kc_current_view_base);
{
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_outmostpattern_OPNonLeafVariable::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_check_is_var_enum: {
view_check_is_var_class& kc_current_view=static_cast<view_check_is_var_class&>(kc_current_view_base);
{
}
break;
}
case view_check_outmostopers_in_phylum_enum: {
view_check_outmostopers_in_phylum_class& kc_current_view=static_cast<view_check_outmostopers_in_phylum_class&>(kc_current_view_base);
{
const ID v = this->ID_1;
const outmostpattern p = this->outmostpattern_1;
variables tmp = Consvariables( v, variablesstack.top() );
ID tmp_pid = f_phylumofoutmostpattern( p );
ID tmp_vid = f_phylumofpatternvariable( v );
ID tmp_resid = tmp_pid->eq(f_emptyId() ) ? tmp_vid : tmp_pid;
if ( phylumstack.top()->eq(f_emptyId()) ) {
phylumstack.pop();
phylumstack.push( tmp_resid );
}
variablesstack.pop(); variablesstack.push( tmp );
v_extendoccur( v, ITPatternVariable( tmp_resid, mkinteger(cl_scope)));
kc::unparse(p, kc_printer, view_check);
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const ID v = this->ID_1;
const outmostpattern p = this->outmostpattern_1;
variables tmp = Consvariables( v, variablesstack.top() );
variablesstack.pop(); variablesstack.push( tmp );
v_extendoccur( v, ITPatternVariable( f_phylumofoutmostpattern( p ),
mkinteger(cl_scope)));
kc::unparse(p, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_outmostpattern_OPOperator::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_check_is_var_enum: {
view_check_is_var_class& kc_current_view=static_cast<view_check_is_var_class&>(kc_current_view_base);
{
}
break;
}
case view_check_outmostopers_in_phylum_enum: {
view_check_outmostopers_in_phylum_class& kc_current_view=static_cast<view_check_outmostopers_in_phylum_class&>(kc_current_view_base);
{
const ID o = this->ID_1;
const patterns p = this->patterns_1;
if (f_useoccuroperator( o ))
{
if ( phylumstack.top()->eq( f_emptyId() )) {
phylumstack.pop();
phylumstack.push( f_phylumofoperator( o ) );
}
if (f_operatorinphylum( o, phylumstack.top()))
{
operators tmp = Consoperators( o, outmostoperators.top() );
outmostoperators.pop();
outmostoperators.push( tmp );
argumentsstack.push( f_argumentsofoperator( o )->reverse());
operatorstack.push( o );
kc::unparse(p, kc_printer, view_check);
if (! f_Nilarguments( argumentsstack.top() )) {
v_report(NonFatal( FileLine( o->file, o->line ),
Problem1S1ID( "too few subpatterns for operator", o )));
}
argumentsstack.pop();
operatorstack.pop();
}
else {
v_report(NonFatal( FileLine( o->file, o->line ),
Problem1S1ID1S1ID( "outermost operator", o,
"not in expected phylum", phylumstack.top() )));
}
}
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const ID o = this->ID_1;
const patterns p = this->patterns_1;
if (f_useoccuroperator( o ))
{
if ( phylumstack.top()->eq( f_emptyId() )) {
phylumstack.pop();
phylumstack.push( f_phylumofoperator( o ) );
}
{
operators tmp = Consoperators( o, outmostoperators.top() );
outmostoperators.pop();
outmostoperators.push( tmp );
argumentsstack.push( f_argumentsofoperator( o )->reverse());
operatorstack.push( o );
kc::unparse(p, kc_printer, kc_current_view);
if (! f_Nilarguments( argumentsstack.top() )) {
v_report(NonFatal( FileLine( o->file, o->line ),
Problem1S1ID( "too few subpatterns for operator", o )));
}
argumentsstack.pop();
operatorstack.pop();
}
}
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_outmostpattern_OPOperatorWildcard::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_check_is_var_enum: {
view_check_is_var_class& kc_current_view=static_cast<view_check_is_var_class&>(kc_current_view_base);
{
const ID i = this->ID_1;
f_warnifnotvariable( i );
}
break;
}
case view_check_outmostopers_in_phylum_enum: {
view_check_outmostopers_in_phylum_class& kc_current_view=static_cast<view_check_outmostopers_in_phylum_class&>(kc_current_view_base);
{
const ID o = this->ID_1;
if (f_useoccuroperator( o )) {
if ( phylumstack.top()->eq(f_emptyId() )) {
phylumstack.pop();
phylumstack.push( f_phylumofoperator( o ) );
}
if (! f_operatorinphylum( o, phylumstack.top())) {
v_report(NonFatal( FileLine( o->file, o->line ),
Problem1S1ID1S1ID( "outermost operator", o,
"not in expected phylum",
phylumstack.top() )));
} else {
operators tmp = Consoperators( o, outmostoperators.top() );
outmostoperators.pop();
outmostoperators.push( tmp );
}
}
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const ID o = this->ID_1;
if (f_useoccuroperator( o )) {
if ( phylumstack.top()->eq( f_emptyId() )) {
phylumstack.pop();
phylumstack.push( f_phylumofoperator( o ) );
}
{ operators tmp = Consoperators( o, outmostoperators.top() );
outmostoperators.pop();
outmostoperators.push( tmp );
}
}
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_pattern_PIntLiteral::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const INT i = this->INT_1;
if ((! f_hd_arguments( argumentsstack.top() )->eq(Id( Str( mkcasestring( "integer" ))))) &&
(! f_hd_arguments( argumentsstack.top() )->eq(Id( Str( mkcasestring( "real" ))))) ) {
v_report(NonFatal( FileLine( i->file, i->line ),
Problem1S( "unexpected int subterm" )));
}
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_pattern_PStringLiteral::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
if ( (! f_hd_arguments( argumentsstack.top() )->eq(Id( Str( mkcasestring( "casestring" ))))) &&
(! f_hd_arguments( argumentsstack.top() )->eq(Id( Str( mkcasestring( "nocasestring" ))))))
{
v_report(NonFatal( FileLine( operatorstack.top()->file, operatorstack.top()->line ),
Problem1S( "unexpected string subterm" )));
}
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_pattern_PWildcard::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_pattern_PNonLeafVariable::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const ID v = this->ID_1;
const pattern p = this->pattern_1;
variables tmp = Consvariables( v, variablesstack.top() );
variablesstack.pop();
variablesstack.push( tmp );
v_extendoccur( v, ITPatternVariable( f_hd_arguments( argumentsstack.top() ),
mkinteger(cl_scope) ));
kc::unparse(p, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_pattern_POperator::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const ID o = this->ID_1;
const patterns p = this->patterns_1;
if (f_useoccuroperator( o ))
{
if (f_Nilarguments( argumentsstack.top() )) {
ID o = operatorstack.top();
v_report(NonFatal( FileLine( o->file, o->line ),
Problem1S1ID( "too many subpatterns for operator", o )));
} else if (f_operatorinphylum( o, f_hd_arguments( argumentsstack.top() )))
{
argumentsstack.push( f_argumentsofoperator( o )->reverse());
operatorstack.push( o );
kc::unparse(p, kc_printer, kc_current_view);
if (! f_Nilarguments( argumentsstack.top() )) {
v_report(NonFatal( FileLine( o->file, o->line ),
Problem1S1ID( "too few subpatterns for operator", o )));
}
argumentsstack.pop();
operatorstack.pop();
}
else
{
v_report(NonFatal( FileLine( o->file, o->line ),
Problem1S1ID1S1ID( "operator", o, "not in phylum",
f_hd_arguments( argumentsstack.top() ) )));
}
}
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_pattern_PVariable::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const ID v = this->ID_1;
variables tmp = Consvariables( v, variablesstack.top() );
variablesstack.pop();
variablesstack.push( tmp );
v_extendoccur( v, ITPatternVariable( f_hd_arguments( argumentsstack.top() ),
mkinteger(cl_scope) ));
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_patterns::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const pattern p = this->pattern_1;
const patterns rp = this->patterns_1;
kc::unparse(rp, kc_printer, kc_current_view);
if (f_Nilarguments( argumentsstack.top() )) {
ID o = operatorstack.top();
v_report(NonFatal( FileLine( o->file, o->line ),
Problem1S1ID( "too many subpatterns for operator", o )));
} else
{
arguments tmp;
kc::unparse(p, kc_printer, kc_current_view);
tmp = argumentsstack.top();
argumentsstack.pop();
argumentsstack.push( f_tl_arguments( tmp ));
}
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (patterns iterator_ = this; iterator_->patterns_1 != 0; iterator_ = iterator_->patterns_1)
iterator_->pattern_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_patterns::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_term_TIntLiteral::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const INT i = this->INT_1;
kc::unparse(i, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_term_TStringLiteral::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const CexpressionDQ str = this->CexpressionDQ_1;
{ kc_printer(kc_t("\""), kc_current_view); }
kc::unparse(str, kc_printer, kc_current_view);
{ kc_printer(kc_t("\""), kc_current_view); }
}
break;
}
}
}
void
impl_term_TCTerm::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const CexpressionSQ Cexpr = this->CexpressionSQ_1;
kc::unparse(Cexpr, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_term_TMemberVarDot::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const term t = this->term_1;
const ID id = this->ID_1;
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t("."), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_term_TMemberVar::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const term t = this->term_1;
const ID id = this->ID_1;
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t("->"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_term_TMethodDot::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const term t = this->term_1;
const ID id = this->ID_1;
const terms ts = this->terms_1;
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t("."), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(ts, kc_printer, kc_current_view);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
}
}
void
impl_term_TMethod::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const term t = this->term_1;
const ID id = this->ID_1;
const terms ts = this->terms_1;
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t("->"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(ts, kc_printer, kc_current_view);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
}
}
void
impl_term_TOperator::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ID id = this->ID_1;
const terms t = this->terms_1;
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
}
}
void
impl_term_TVariable::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ID id = this->ID_1;
kc::unparse(id, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_terms::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
if ((this->terms_1->prod_sel() == sel_Nilterms)) {
const term t = this->term_1;
kc::unparse(t, kc_printer, kc_current_view);
} else
{
const term t = this->term_1;
const terms r_t = this->terms_1;
kc::unparse(r_t, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
kc::unparse(t, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_terms::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
}
break;
}
}
}
void
impl_fnfiles::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const fnfile f = this->fnfile_1;
const fnfiles r_f = this->fnfiles_1;
kc::unparse(r_f, kc_printer, kc_current_view);
{ kc_printer(kc_t("\t\""), kc_current_view); }
kc::unparse(f, kc_printer, kc_current_view);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
break;
}
}
}
void
impl_fnfiles::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
}
break;
}
}
}
void
impl_fnfile_FnFile::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_fndeclarations::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_fnk_c_enum: {
view_gen_fnk_c_class& kc_current_view=static_cast<view_gen_fnk_c_class&>(kc_current_view_base);
{
const fndeclaration fnd = this->fndeclaration_1;
const fndeclarations r_fnds = this->fndeclarations_1;
kc::unparse(r_fnds, kc_printer, kc_current_view);
kc::unparse(fnd, kc_printer, kc_current_view);
}
break;
}
case view_gen_fnkdecls_c_enum: {
view_gen_fnkdecls_c_class& kc_current_view=static_cast<view_gen_fnkdecls_c_class&>(kc_current_view_base);
{
const fndeclaration fnd = this->fndeclaration_1;
const fndeclarations r_fnds = this->fndeclarations_1;
kc::unparse(r_fnds, kc_printer, kc_current_view);
kc::unparse(fnd, kc_printer, kc_current_view);
}
break;
}
case view_gen_fnk_h_enum: {
view_gen_fnk_h_class& kc_current_view=static_cast<view_gen_fnk_h_class&>(kc_current_view_base);
{
const fndeclaration fnd = this->fndeclaration_1;
const fndeclarations r_fnds = this->fndeclarations_1;
kc::unparse(r_fnds, kc_printer, kc_current_view);
kc::unparse(fnd, kc_printer, kc_current_view);
}
break;
}
case view_gen_user_assignment_inis_enum: {
view_gen_user_assignment_inis_class& kc_current_view=static_cast<view_gen_user_assignment_inis_class&>(kc_current_view_base);
if ((this->fndeclaration_1->prod_sel() == sel_AcMemberDeclaration) && (phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->ac_declarator_1->prod_sel() == sel_AcDeclarator) && (phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcMemberDecl) && (this->fndeclarations_1->prod_sel() == sel_Nilfndeclarations)) {
const ID a_id = phylum_cast<const impl_ac_direct_declarator_AcMemberDecl*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1)->ID_2;
const ac_constant_expression_option a_cexpr = phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->ac_constant_expression_option_1;
kc::unparse(a_id, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(a_cexpr, kc_printer, kc_current_view);
{ kc_printer(kc_t(")"), kc_current_view); }
} else
if ((this->fndeclaration_1->prod_sel() == sel_AcMemberDeclaration) && (phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->ac_declarator_1->prod_sel() == sel_AcDeclarator) && (phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcMemberDecl)) {
const ID a_id = phylum_cast<const impl_ac_direct_declarator_AcMemberDecl*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1)->ID_2;
const ac_constant_expression_option a_cexpr = phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->ac_constant_expression_option_1;
const fndeclarations rargs = this->fndeclarations_1;
kc::unparse(a_id, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(a_cexpr, kc_printer, kc_current_view);
{ kc_printer(kc_t(")"), kc_current_view); }
{ kc_printer(kc_t(", "), kc_current_view); }
kc::unparse(rargs, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_operatordefs_hash_c_enum: {
view_gen_operatordefs_hash_c_class& kc_current_view=static_cast<view_gen_operatordefs_hash_c_class&>(kc_current_view_base);
if ((this->fndeclaration_1->prod_sel() == sel_FnAcDeclaration) && (phylum_cast<const impl_fndeclaration_FnAcDeclaration*>(this->fndeclaration_1)->ac_declarator_1->prod_sel() == sel_AcDeclarator) && (phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_FnAcDeclaration*>(this->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcQualifiedDeclProto) && (phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_FnAcDeclaration*>(this->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcDirectDeclId) && (phylum_cast<const impl_fndeclaration_FnAcDeclaration*>(this->fndeclaration_1)->fnclass_1->prod_sel() == sel_ConstructorFn)) {
const fndeclaration decl = this->fndeclaration_1;
const ID oid = phylum_cast<const impl_ac_direct_declarator_AcDirectDeclId*>(phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_FnAcDeclaration*>(this->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1)->ID_1;
const ac_parameter_type_list params = phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_FnAcDeclaration*>(this->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1)->ac_parameter_type_list_1;
const fndeclarations tail = this->fndeclarations_1;
kc::unparse(tail, kc_printer, kc_current_view);
{ kc_printer(kc_t("impl_"), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
if(gl_isnotlist)
{
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
}
{ kc_printer(kc_t("*\n"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(gl_args, kc_printer, view_gen_fnarg_and_decls);
if(gl_no_of_args && !f_no_params(params)) { PRINT(","); }
kc::unparse(decl->sorted, kc_printer, view_gen_fnk_c);
{ kc_printer(kc_t(") {\
\n "), kc_current_view); }
kc::unparse(gl_args, kc_printer, view_gen_fnarg_asserts);
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t(" kc_x=new impl_"), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
if(gl_isnotlist)
{
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
}
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(gl_args, kc_printer, view_gen_argseqnr_rec);
if(gl_no_of_args && !f_no_params(params)) { PRINT(","); }
kc::unparse(decl->sorted, kc_printer, view_gen_fnkargs);
{ kc_printer(kc_t(");\
\n KC_COLLECT_STATS0(KC_CREATE_STATS(sel_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t("));\
\n "), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t(" unique_kc_x= hashtables["), kc_current_view); }
kc::unparse(gl_sto, kc_printer, kc_current_view);
{ kc_printer(kc_t("]->ht_check_insert(kc_x);\
\n if(unique_kc_x!=kc_x) {\
\n "), kc_current_view); }
if(!g_options.smart_pointer)
{
{ kc_printer(kc_t(" delete kc_x;\n"), kc_current_view); }
}
else
{
{ kc_printer(kc_t(" // kc_x already deleted in ht_check_insert\n"), kc_current_view); }
}
{ kc_printer(kc_t(" kc_x=unique_kc_x;\
\n } else {\
\n KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t("));\
\n kc_x->post_create();\
\n"), kc_current_view); }
if (f_something_to_initialize( gl_cco ))
{
{ kc_printer(kc_t(" kc_x = kc_initialize_"), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t("(kc_x);\
\n"), kc_current_view); }
}
{ kc_printer(kc_t(" }\
\n return static_cast<impl_"), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
if(gl_isnotlist)
{
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
}
{ kc_printer(kc_t("*>(kc_x);\
\n}\
\n\
\n"), kc_current_view); }
} else
{
const fndeclaration head = this->fndeclaration_1;
const fndeclarations tail = this->fndeclarations_1;
kc::unparse(tail, kc_printer, kc_current_view);
}
break;
}
case view_gen_operatordefs_nonhash_c_enum: {
view_gen_operatordefs_nonhash_c_class& kc_current_view=static_cast<view_gen_operatordefs_nonhash_c_class&>(kc_current_view_base);
if ((this->fndeclaration_1->prod_sel() == sel_FnAcDeclaration) && (phylum_cast<const impl_fndeclaration_FnAcDeclaration*>(this->fndeclaration_1)->ac_declarator_1->prod_sel() == sel_AcDeclarator) && (phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_FnAcDeclaration*>(this->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcQualifiedDeclProto) && (phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_FnAcDeclaration*>(this->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcDirectDeclId) && (phylum_cast<const impl_fndeclaration_FnAcDeclaration*>(this->fndeclaration_1)->fnclass_1->prod_sel() == sel_ConstructorFn)) {
const fndeclaration decl = this->fndeclaration_1;
const ID oid = phylum_cast<const impl_ac_direct_declarator_AcDirectDeclId*>(phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_FnAcDeclaration*>(this->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1)->ID_1;
const ac_parameter_type_list params = phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_FnAcDeclaration*>(this->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1)->ac_parameter_type_list_1;
const fndeclarations tail = this->fndeclarations_1;
kc::unparse(tail, kc_printer, kc_current_view);
{ kc_printer(kc_t("impl_"), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
if(gl_isnotlist)
{
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
}
{ kc_printer(kc_t("*\n"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(gl_args, kc_printer, view_gen_fnarg_and_decls);
if(gl_no_of_args>0 && !f_no_params(params)) { PRINT(","); }
kc::unparse(decl->sorted, kc_printer, view_gen_fnk_c);
{ kc_printer(kc_t(") {\
\n "), kc_current_view); }
kc::unparse(gl_args, kc_printer, view_gen_fnarg_asserts);
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t(" kc_x = new impl_"), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
if(gl_isnotlist)
{
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
}
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(gl_args, kc_printer, view_gen_argseqnr_rec);
if(gl_no_of_args && !f_no_params(params)) { PRINT(","); }
kc::unparse(decl->sorted, kc_printer, view_gen_fnkargs);
{ kc_printer(kc_t(");\
\n KC_COLLECT_STATS0(KC_CREATE_STATS(sel_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t("));\
\n KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
{ kc_printer(kc_t("));\
\n kc_x->post_create();\
\n "), kc_current_view); }
if (f_something_to_initialize( gl_cco ))
{
{ kc_printer(kc_t(" kc_x = kc_initialize_"), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t("(kc_x);\
\n "), kc_current_view); }
}
{ kc_printer(kc_t(" return static_cast<impl_"), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
if(gl_isnotlist)
{
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(oid, kc_printer, kc_current_view);
}
{ kc_printer(kc_t("*>(kc_x);\
\n "), kc_current_view); }
{ kc_printer(kc_t("}\
\n\
\n "), kc_current_view); }
} else
{
const fndeclaration head = this->fndeclaration_1;
const fndeclarations tail = this->fndeclarations_1;
kc::unparse(tail, kc_printer, kc_current_view);
}
break;
}
case view_gen_operatordecls_h_enum: {
view_gen_operatordecls_h_class& kc_current_view=static_cast<view_gen_operatordecls_h_class&>(kc_current_view_base);
if ((this->fndeclaration_1->prod_sel() == sel_FnAcDeclaration) && (phylum_cast<const impl_fndeclaration_FnAcDeclaration*>(this->fndeclaration_1)->ac_declarator_1->prod_sel() == sel_AcDeclarator) && (phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_FnAcDeclaration*>(this->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcQualifiedDeclProto) && (phylum_cast<const impl_fndeclaration_FnAcDeclaration*>(this->fndeclaration_1)->fnclass_1->prod_sel() == sel_ConstructorFn)) {
const fndeclaration decl = this->fndeclaration_1;
const ac_direct_declarator id = phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_FnAcDeclaration*>(this->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1;
const ac_parameter_type_list params = phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_FnAcDeclaration*>(this->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1)->ac_parameter_type_list_1;
const fndeclarations tail = this->fndeclarations_1;
kc::unparse(tail, kc_printer, kc_current_view);
{ kc_printer(kc_t("class "), kc_current_view); }
kc::unparse(id, kc_printer, view_gen_fn_pointer_name);
{ kc_printer(kc_t("*\b "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" ("), kc_current_view); }
kc::unparse(gl_args, kc_printer, kc_current_view);
if(gl_no_of_args && !f_no_params(params)) { PRINT(","); }
kc::unparse(decl->sorted, kc_printer, view_gen_fnk_h);
{ kc_printer(kc_t(");\n"), kc_current_view); }
} else
{
const fndeclaration head = this->fndeclaration_1;
const fndeclarations tail = this->fndeclarations_1;
kc::unparse(tail, kc_printer, kc_current_view);
}
break;
}
case view_count_nonstaticmembers_enum: {
view_count_nonstaticmembers_class& kc_current_view=static_cast<view_count_nonstaticmembers_class&>(kc_current_view_base);
if ((this->fndeclaration_1->prod_sel() == sel_AcMemberDeclaration) && (phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->ac_declaration_specifiers_1->prod_sel() == sel_Consac_declaration_specifiers) && ((phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->ac_declaration_specifiers_1)->ac_declaration_specifier_1->prod_sel() == sel_AcDeclSpecTypeSpec) && (phylum_cast<const impl_ac_declaration_specifier_AcDeclSpecTypeSpec*>((phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->ac_declaration_specifiers_1)->ac_declaration_specifier_1)->ac_type_specifier_1->prod_sel() == sel_AcTypeSpec) && (phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->ac_declarator_1->prod_sel() == sel_AcDeclarator) && (phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcMemberDecl) && (phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->fnclass_1->prod_sel() == sel_MemberFn)) {
const fndeclaration fd = this->fndeclaration_1;
const ID a_type = phylum_cast<const impl_ac_type_specifier_AcTypeSpec*>(phylum_cast<const impl_ac_declaration_specifier_AcDeclSpecTypeSpec*>((phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->ac_declaration_specifiers_1)->ac_declaration_specifier_1)->ac_type_specifier_1)->ID_1;
const ID a_id = phylum_cast<const impl_ac_direct_declarator_AcMemberDecl*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1)->ID_2;
const fndeclarations rfd = this->fndeclarations_1;
kc::unparse(rfd, kc_printer, kc_current_view);
gl_no_of_args++;
gl_args=Consarguments(a_type, gl_args);
gl_members=Consfndeclarations(fd, gl_members);
gl_idents=Consac_identifier_list(a_id, gl_idents);
} else
{
const fndeclarations rfd = this->fndeclarations_1;
kc::unparse(rfd, kc_printer, kc_current_view);
}
break;
}
case view_count_attrs_enum: {
view_count_attrs_class& kc_current_view=static_cast<view_count_attrs_class&>(kc_current_view_base);
if ((this->fndeclaration_1->prod_sel() == sel_AcMemberDeclaration) && (phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->ac_declaration_specifiers_1->prod_sel() == sel_Consac_declaration_specifiers) && ((phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->ac_declaration_specifiers_1)->ac_declaration_specifier_1->prod_sel() == sel_AcDeclSpecTypeSpec) && (phylum_cast<const impl_ac_declaration_specifier_AcDeclSpecTypeSpec*>((phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->ac_declaration_specifiers_1)->ac_declaration_specifier_1)->ac_type_specifier_1->prod_sel() == sel_AcTypeSpec) && (phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->ac_declarator_1->prod_sel() == sel_AcDeclarator) && (phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcMemberDecl)) {
const fndeclaration fd = this->fndeclaration_1;
const ID a_type = phylum_cast<const impl_ac_type_specifier_AcTypeSpec*>(phylum_cast<const impl_ac_declaration_specifier_AcDeclSpecTypeSpec*>((phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->ac_declaration_specifiers_1)->ac_declaration_specifier_1)->ac_type_specifier_1)->ID_1;
const ID a_id = phylum_cast<const impl_ac_direct_declarator_AcMemberDecl*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_AcMemberDeclaration*>(this->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1)->ID_2;
const fndeclarations rfd = this->fndeclarations_1;
kc::unparse(rfd, kc_printer, kc_current_view);
if (fd->is_attr) {
gl_no_of_args++;
gl_args=Consarguments(a_type, gl_args);
gl_members=Consfndeclarations(fd, gl_members);
gl_idents=Consac_identifier_list(a_id, gl_idents);
}
} else
{
const fndeclarations rfd = this->fndeclarations_1;
kc::unparse(rfd, kc_printer, kc_current_view);
}
break;
}
case view_make_patternreps_enum: {
view_make_patternreps_class& kc_current_view=static_cast<view_make_patternreps_class&>(kc_current_view_base);
{
const fndeclaration a_fnd = this->fndeclaration_1;
const fndeclarations r_fnd = this->fndeclarations_1;
kc::unparse(r_fnd, kc_printer, kc_current_view);
kc::unparse(a_fnd, kc_printer, kc_current_view);
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const fndeclaration fnd = this->fndeclaration_1;
const fndeclarations fnds = this->fndeclarations_1;
kc::unparse(fnds, kc_printer, kc_current_view);
kc::unparse(fnd, kc_printer, kc_current_view);
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (fndeclarations iterator_ = this; iterator_->fndeclarations_1 != 0; iterator_ = iterator_->fndeclarations_1)
iterator_->fndeclaration_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_fndeclarations::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_fnk_c_enum: {
view_gen_fnk_c_class& kc_current_view=static_cast<view_gen_fnk_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_fnkdecls_c_enum: {
view_gen_fnkdecls_c_class& kc_current_view=static_cast<view_gen_fnkdecls_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("\
\n#ifndef KC_TRACE_PROVIDED\
\n#define KC_TRACE_PROVIDED(COND,FILE,LINE,NODE) COND\
\n#endif\
\n\
\n"), kc_current_view); }
}
break;
}
case view_gen_fnk_h_enum: {
view_gen_fnk_h_class& kc_current_view=static_cast<view_gen_fnk_h_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_operatordefs_hash_c_enum: {
view_gen_operatordefs_hash_c_class& kc_current_view=static_cast<view_gen_operatordefs_hash_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_operatordefs_nonhash_c_enum: {
view_gen_operatordefs_nonhash_c_class& kc_current_view=static_cast<view_gen_operatordefs_nonhash_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_operatordecls_h_enum: {
view_gen_operatordecls_h_class& kc_current_view=static_cast<view_gen_operatordecls_h_class&>(kc_current_view_base);
{
}
break;
}
case view_count_nonstaticmembers_enum: {
view_count_nonstaticmembers_class& kc_current_view=static_cast<view_count_nonstaticmembers_class&>(kc_current_view_base);
{
gl_no_of_args = 0; gl_args = Nilarguments(); gl_members=Nilfndeclarations(); gl_idents=Nilac_identifier_list();
}
break;
}
case view_count_attrs_enum: {
view_count_attrs_class& kc_current_view=static_cast<view_count_attrs_class&>(kc_current_view_base);
{
gl_no_of_args = 0; gl_args = Nilarguments(); gl_members=Nilfndeclarations(); gl_idents=Nilac_identifier_list();
}
break;
}
case view_make_patternreps_enum: {
view_make_patternreps_class& kc_current_view=static_cast<view_make_patternreps_class&>(kc_current_view_base);
{
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_fndeclaration_AcMemberDeclaration::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_member_dcl_h_enum: {
view_gen_member_dcl_h_class& kc_current_view=static_cast<view_gen_member_dcl_h_class&>(kc_current_view_base);
{
const ac_declaration_specifiers fn_ds = this->ac_declaration_specifiers_1;
const ac_declarator fn_d = this->ac_declarator_1;
kc::unparse(fn_ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(fn_d, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
}
break;
}
case view_gen_fnk_c_enum: {
view_gen_fnk_c_class& kc_current_view=static_cast<view_gen_fnk_c_class&>(kc_current_view_base);
if ((this->ac_constant_expression_option_1->prod_sel() == sel_Noac_constant_expression) && (this->fnclass_1->prod_sel() == sel_StaticFn)) {
const ac_declaration_specifiers fn_ds = this->ac_declaration_specifiers_1;
const ac_declarator fn_d = this->ac_declarator_1;
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(this->last_line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(this->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
kc::unparse(fn_ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(fn_d, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
} else
if ((this->ac_constant_expression_option_1->prod_sel() == sel_Yesac_constant_expression) && (this->fnclass_1->prod_sel() == sel_StaticFn)) {
const ac_declaration_specifiers fn_ds = this->ac_declaration_specifiers_1;
const ac_declarator fn_d = this->ac_declarator_1;
const ac_constant_expression expr = phylum_cast<const impl_ac_constant_expression_option_Yesac_constant_expression*>(this->ac_constant_expression_option_1)->ac_constant_expression_1;
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(this->last_line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(this->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
kc::unparse(fn_ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(fn_d, kc_printer, kc_current_view);
{ kc_printer(kc_t("="), kc_current_view); }
kc::unparse(expr, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
} else
if ((this->ac_constant_expression_option_1->prod_sel() == sel_Noac_constant_expression)) {
} else
goto kc_unparsing_default;
break;
}
case view_make_patternreps_enum: {
view_make_patternreps_class& kc_current_view=static_cast<view_make_patternreps_class&>(kc_current_view_base);
{
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
if ((this->ac_declarator_1->prod_sel() == sel_AcDeclarator) && (phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcMemberDecl) && (this->fnclass_1->prod_sel() == sel_StaticFn) && (KC_TRACE_PROVIDED((is_attr), "util.k", 672, this))) {
const ID pid = phylum_cast<const impl_ac_direct_declarator_AcMemberDecl*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ID_1;
const ID aid = phylum_cast<const impl_ac_direct_declarator_AcMemberDecl*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ID_2;
v_report(NonFatal( FileLine(file, last_line) ,
Problem1S1ID1S1ID( "attribute", aid,
"(with %attr) should not be static in phylum", pid)));
} else
if ((this->ac_declarator_1->prod_sel() == sel_AcDeclarator) && (phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcMemberDecl)) {
const ID pid = phylum_cast<const impl_ac_direct_declarator_AcMemberDecl*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ID_1;
const ID aid = phylum_cast<const impl_ac_direct_declarator_AcMemberDecl*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ID_2;
{
ID kc_selvar_0_1 = phylum_cast<ID>(pid);
if ((kc_selvar_0_1->prod_sel() == sel_Id)) {
const uniqID uid = phylum_cast<const impl_ID_Id*>(kc_selvar_0_1)->uniqID_1;
{
IDtype kc_selvar_1_1 = phylum_cast<IDtype>( uid->type );
if ((kc_selvar_1_1->prod_sel() == sel_ITUnknown)) {
v_report(NonFatal( FileLine(file, last_line),
Problem1S1ID1S1ID( "attribute", aid,
"is not part of any phylum or operator; defined in", pid)));
} else
{
}
}
} else
kc_no_default_in_with( "", __LINE__, __FILE__ );
}
if (f_ispredefinedphylum(pid) && strcmp(f_strofID(pid), "abstract_phylum")!=0
&& strcmp(f_strofID(pid), "abstract_list")!=0)
v_report(NonFatal( FileLine(this->file, this->last_line) ,
Problem1S1ID1S1ID( "attribute", aid,
"must not be defined in predefined phylum", pid)));
if(!f_listelementphylum(f_phylumofoperator(pid))->eq(f_emptyId()))
v_report(NonFatal( FileLine(file, last_line) ,
Problem1S1ID1S1ID( "attribute", aid,
"must not be declared in list operator", pid)));
} else
{
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
}
break;
}
}
}
void
impl_fndeclaration_FnAcDeclaration::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_member_dcl_h_enum: {
view_gen_member_dcl_h_class& kc_current_view=static_cast<view_gen_member_dcl_h_class&>(kc_current_view_base);
if ((this->ac_declarator_1->prod_sel() == sel_AcDeclarator) && (phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcQualifiedDeclProto) && (phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcDirectDeclId) && (this->fnclass_1->prod_sel() == sel_ConstructorFn)) {
const ac_declaration_specifiers fn_ds = this->ac_declaration_specifiers_1;
const ac_declarator fn_d = this->ac_declarator_1;
const ID oid = phylum_cast<const impl_ac_direct_declarator_AcDirectDeclId*>(phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1)->ID_1;
const ac_parameter_type_list params = phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ac_parameter_type_list_1;
const fnclass fnc = this->fnclass_1;
bool is_ctor=false;
{
fnclass kc_selvar_0_1 = phylum_cast<fnclass>(fnc);
if ((kc_selvar_0_1->prod_sel() == sel_ConstructorFn)) {
is_ctor=true;
} else
{
}
}
kc::unparse(fn_ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
if(!is_ctor) PRINT("~");
kc::unparse(fn_d, kc_printer, view_gen_fn_pointer_name);
{ kc_printer(kc_t("("), kc_current_view); }
arguments args=f_argumentsofoperator(oid);
if(is_ctor)
{
kc::unparse(args, kc_printer, view_count_args);
if (f_ispredefinedphylum(f_phylumofoperator(oid)))
{
kc::unparse(args, kc_printer, view_gen_fnarg_and_decls_predef);
}
else
{
kc::unparse(args, kc_printer, view_gen_fnarg_and_decls);
}
if(gl_no_of_args && !f_no_params(params)) { PRINT(","); }
kc::unparse(params, kc_printer, view_gen_fnk_h);
}
{ kc_printer(kc_t(");\
\n"), kc_current_view); }
} else
if ((this->ac_declarator_1->prod_sel() == sel_AcDeclarator) && (phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcQualifiedDeclProto) && (phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcDirectDeclId) && (this->fnclass_1->prod_sel() == sel_DestructorFn)) {
const ac_declaration_specifiers fn_ds = this->ac_declaration_specifiers_1;
const ac_declarator fn_d = this->ac_declarator_1;
const ID oid = phylum_cast<const impl_ac_direct_declarator_AcDirectDeclId*>(phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1)->ID_1;
const ac_parameter_type_list params = phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ac_parameter_type_list_1;
const fnclass fnc = this->fnclass_1;
bool is_ctor=false;
{
fnclass kc_selvar_0_1 = phylum_cast<fnclass>(fnc);
if ((kc_selvar_0_1->prod_sel() == sel_ConstructorFn)) {
is_ctor=true;
} else
{
}
}
kc::unparse(fn_ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
if(!is_ctor) PRINT("~");
kc::unparse(fn_d, kc_printer, view_gen_fn_pointer_name);
{ kc_printer(kc_t("("), kc_current_view); }
arguments args=f_argumentsofoperator(oid);
if(is_ctor)
{
kc::unparse(args, kc_printer, view_count_args);
if (f_ispredefinedphylum(f_phylumofoperator(oid)))
{
kc::unparse(args, kc_printer, view_gen_fnarg_and_decls_predef);
}
else
{
kc::unparse(args, kc_printer, view_gen_fnarg_and_decls);
}
if(gl_no_of_args && !f_no_params(params)) { PRINT(","); }
kc::unparse(params, kc_printer, view_gen_fnk_h);
}
{ kc_printer(kc_t(");\
\n"), kc_current_view); }
} else
if ((this->fnclass_1->prod_sel() == sel_ConvOperatorFn)) {
const ac_declarator fn_d = this->ac_declarator_1;
kc::unparse(fn_d, kc_printer, kc_current_view);
} else
{
const ac_declaration_specifiers fn_ds = this->ac_declaration_specifiers_1;
const ac_declarator fn_d = this->ac_declarator_1;
kc::unparse(fn_ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(fn_d, kc_printer, kc_current_view);
}
break;
}
case view_gen_fnk_c_enum: {
view_gen_fnk_c_class& kc_current_view=static_cast<view_gen_fnk_c_class&>(kc_current_view_base);
if ((this->ac_declarator_1->prod_sel() == sel_AcDeclarator) && (phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcQualifiedDeclProto) && (phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcDirectDeclId) && (this->fnclass_1->prod_sel() == sel_ConstructorFn)) {
const ac_declaration_specifiers fn_ds = this->ac_declaration_specifiers_1;
const ac_declarator fn_d = this->ac_declarator_1;
const ID oid = phylum_cast<const impl_ac_direct_declarator_AcDirectDeclId*>(phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1)->ID_1;
const ac_parameter_type_list params = phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ac_parameter_type_list_1;
const ac_opt_base_init_list base_init = this->ac_opt_base_init_list_1;
const Ctext ct = this->Ctext_1;
const fnclass fnc = this->fnclass_1;
gl_return_ID = 0;
gl_return_type = "";
gl_star_count = f_stars_of_declarator( fn_d );
gl_function = f_strofID(f_id_of_ctor_dtor_decl(fn_d));
gl_operator=oid;
bool is_ctor=false;
{
fnclass kc_selvar_0_1 = phylum_cast<fnclass>(fnc);
if ((kc_selvar_0_1->prod_sel() == sel_ConstructorFn)) {
is_ctor=true;
} else
{
}
}
kc::unparse(fn_d, kc_printer, view_gen_fn_pointer_name);
{ kc_printer(kc_t("::"), kc_current_view); }
if(!is_ctor) { PRINT("~"); }
kc::unparse(fn_d, kc_printer, view_gen_fn_pointer_name);
{ kc_printer(kc_t("("), kc_current_view); }
arguments args=f_argumentsofoperator(oid);
if(is_ctor)
{
kc::unparse(args, kc_printer, view_count_args);
if (f_ispredefinedphylum(f_phylumofoperator(oid)))
{
kc::unparse(args, kc_printer, view_gen_fnarg_and_decls_predef);
}
else
{
kc::unparse(args, kc_printer, view_gen_fnarg_and_decls);
}
if(gl_no_of_args && !f_no_params(params)) { PRINT(","); }
kc::unparse(this->sorted, kc_printer, kc_current_view);
}
{ kc_printer(kc_t(")"), kc_current_view); }
kc::unparse(base_init, kc_printer, kc_current_view);
{ kc_printer(kc_t("\n"), kc_current_view); }
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(ct->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(ct->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
{ kc_printer(kc_t("{"), kc_current_view); }
if(is_ctor)
{
if (f_ispredefinedphylum(f_phylumofoperator(oid)))
{
kc::unparse(args, kc_printer, view_gen_assignments_predef);
}
else if(The_abstract_phylum_decl->subphylum(0)->eq(oid))
{
if(g_options.smart_pointer)
{
{ kc_printer(kc_t("_ref=0;\
\n "), kc_current_view); }
}
}
else
{
kc::unparse(args, kc_printer, view_gen_assignments);
}
}
kc::unparse(ct, kc_printer, view_gen_initializephyla_c);
{ kc_printer(kc_t("\n"), kc_current_view); }
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(this->last_line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(this->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
{ kc_printer(kc_t("}"), kc_current_view); }
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t("\
\n"), kc_current_view); }
gl_return_type = "";
gl_return_ID = 0;
gl_star_count = 0;
gl_function = "";
} else
if ((this->ac_declarator_1->prod_sel() == sel_AcDeclarator) && (phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcQualifiedDeclProto) && (phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcDirectDeclId) && (this->fnclass_1->prod_sel() == sel_DestructorFn)) {
const ac_declaration_specifiers fn_ds = this->ac_declaration_specifiers_1;
const ac_declarator fn_d = this->ac_declarator_1;
const ID oid = phylum_cast<const impl_ac_direct_declarator_AcDirectDeclId*>(phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1)->ID_1;
const ac_parameter_type_list params = phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ac_parameter_type_list_1;
const ac_opt_base_init_list base_init = this->ac_opt_base_init_list_1;
const Ctext ct = this->Ctext_1;
const fnclass fnc = this->fnclass_1;
gl_return_ID = 0;
gl_return_type = "";
gl_star_count = f_stars_of_declarator( fn_d );
gl_function = f_strofID(f_id_of_ctor_dtor_decl(fn_d));
gl_operator=oid;
bool is_ctor=false;
{
fnclass kc_selvar_0_1 = phylum_cast<fnclass>(fnc);
if ((kc_selvar_0_1->prod_sel() == sel_ConstructorFn)) {
is_ctor=true;
} else
{
}
}
kc::unparse(fn_d, kc_printer, view_gen_fn_pointer_name);
{ kc_printer(kc_t("::"), kc_current_view); }
if(!is_ctor) { PRINT("~"); }
kc::unparse(fn_d, kc_printer, view_gen_fn_pointer_name);
{ kc_printer(kc_t("("), kc_current_view); }
arguments args=f_argumentsofoperator(oid);
if(is_ctor)
{
kc::unparse(args, kc_printer, view_count_args);
if (f_ispredefinedphylum(f_phylumofoperator(oid)))
{
kc::unparse(args, kc_printer, view_gen_fnarg_and_decls_predef);
}
else
{
kc::unparse(args, kc_printer, view_gen_fnarg_and_decls);
}
if(gl_no_of_args && !f_no_params(params)) { PRINT(","); }
kc::unparse(this->sorted, kc_printer, kc_current_view);
}
{ kc_printer(kc_t(")"), kc_current_view); }
kc::unparse(base_init, kc_printer, kc_current_view);
{ kc_printer(kc_t("\n"), kc_current_view); }
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(ct->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(ct->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
{ kc_printer(kc_t("{"), kc_current_view); }
if(is_ctor)
{
if (f_ispredefinedphylum(f_phylumofoperator(oid)))
{
kc::unparse(args, kc_printer, view_gen_assignments_predef);
}
else if(The_abstract_phylum_decl->subphylum(0)->eq(oid))
{
if(g_options.smart_pointer)
{
{ kc_printer(kc_t("_ref=0;\
\n "), kc_current_view); }
}
}
else
{
kc::unparse(args, kc_printer, view_gen_assignments);
}
}
kc::unparse(ct, kc_printer, view_gen_initializephyla_c);
{ kc_printer(kc_t("\n"), kc_current_view); }
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(this->last_line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(this->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
{ kc_printer(kc_t("}"), kc_current_view); }
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t("\
\n"), kc_current_view); }
gl_return_type = "";
gl_return_ID = 0;
gl_star_count = 0;
gl_function = "";
} else
if ((this->fnclass_1->prod_sel() == sel_ConvOperatorFn)) {
const ac_declaration_specifiers fn_ds = this->ac_declaration_specifiers_1;
const ac_declarator fn_d = this->ac_declarator_1;
const Ctext ct = this->Ctext_1;
const ID fn_name = this->ID_1;
const fnclass fnc = this->fnclass_1;
gl_return_ID = 0;
gl_return_type = "";
gl_star_count = f_stars_of_declarator( fn_d );
gl_function = f_strofID( fn_name );
kc::unparse(fn_d, kc_printer, view_gen_fn_pointer_name);
{ kc_printer(kc_t("()"), kc_current_view); }
kc::unparse(fn_d, kc_printer, view_gen_opt_const);
{ kc_printer(kc_t("\n"), kc_current_view); }
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(ct->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(ct->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
{ kc_printer(kc_t("{"), kc_current_view); }
kc::unparse(ct, kc_printer, view_gen_initializephyla_c);
{ kc_printer(kc_t("\n"), kc_current_view); }
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(this->last_line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(this->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
{ kc_printer(kc_t("}"), kc_current_view); }
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t("\
\n"), kc_current_view); }
gl_return_type = "";
gl_return_ID = 0;
gl_star_count = 0;
gl_function = "";
} else
{
const ac_declaration_specifiers fn_ds = this->ac_declaration_specifiers_1;
const ac_declarator fn_d = this->ac_declarator_1;
const Ctext ct = this->Ctext_1;
const ID fn_name = this->ID_1;
const fnclass fnc = this->fnclass_1;
gl_return_ID = f_ID_of_ac_declaration_specifiers( fn_ds );
gl_return_type = f_strofID( gl_return_ID );
gl_star_count = f_stars_of_declarator( fn_d );
gl_function = f_strofID( fn_name );
if (strcmp(gl_function, "main")==0) PRINT("} // namespace kc\n");
kc::unparse(fnc, kc_printer, kc_current_view);
kc::unparse(fn_ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(fn_d, kc_printer, view_gen_fn_pointer_name);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(this->sorted, kc_printer, kc_current_view);
{ kc_printer(kc_t(")"), kc_current_view); }
kc::unparse(fn_d, kc_printer, view_gen_opt_const);
{ kc_printer(kc_t("\n"), kc_current_view); }
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(ct->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(ct->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
{ kc_printer(kc_t("{"), kc_current_view); }
kc::unparse(ct, kc_printer, view_gen_initializephyla_c);
{ kc_printer(kc_t("\n"), kc_current_view); }
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(this->last_line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(this->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
{ kc_printer(kc_t("}"), kc_current_view); }
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t("\
\n"), kc_current_view); }
gl_return_type = "";
gl_return_ID = 0;
gl_star_count = 0;
if (strcmp(gl_function, "main")==0) PRINT("namespace kc {\r\n");
gl_function = "";
}
break;
}
case view_gen_fnkdecls_c_enum: {
view_gen_fnkdecls_c_class& kc_current_view=static_cast<view_gen_fnkdecls_c_class&>(kc_current_view_base);
if ((this->fnclass_1->prod_sel() == sel_GlobalFn)) {
} else
if ((this->fnclass_1->prod_sel() == sel_MemberFn)) {
} else
if ((this->fnclass_1->prod_sel() == sel_ConstructorFn)) {
} else
if ((this->fnclass_1->prod_sel() == sel_DestructorFn)) {
} else
if ((this->fnclass_1->prod_sel() == sel_ConvOperatorFn)) {
} else
if ((this->fnclass_1->prod_sel() == sel_StaticFn)) {
const ac_declaration_specifiers fn_ds = this->ac_declaration_specifiers_1;
const ac_declarator fn_d = this->ac_declarator_1;
const fnclass fn_c = this->fnclass_1;
kc::unparse(fn_c, kc_printer, kc_current_view);
kc::unparse(fn_ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(fn_d, kc_printer, view_gen_fn_pointer_name);
{ kc_printer(kc_t(" ("), kc_current_view); }
kc::unparse(this->sorted, kc_printer, kc_current_view);
{ kc_printer(kc_t(");\
\n"), kc_current_view); }
} else
goto kc_unparsing_default;
break;
}
case view_gen_fnk_h_enum: {
view_gen_fnk_h_class& kc_current_view=static_cast<view_gen_fnk_h_class&>(kc_current_view_base);
if ((this->ID_1->prod_sel() == sel_Id) && (phylum_cast<const impl_ID_Id*>(this->ID_1)->uniqID_1->prod_sel() == sel_Str) && (kc_strcmp(phylum_cast<const impl_uniqID_Str*>(phylum_cast<const impl_ID_Id*>(this->ID_1)->uniqID_1)->casestring_1->name, kc_t("main"))==0) && (this->fnclass_1->prod_sel() == sel_GlobalFn)) {
} else
if ((this->fnclass_1->prod_sel() == sel_GlobalFn)) {
const ac_declaration_specifiers fn_ds = this->ac_declaration_specifiers_1;
const ac_declarator fn_d = this->ac_declarator_1;
kc::unparse(fn_ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(fn_d, kc_printer, view_gen_fn_pointer_name);
{ kc_printer(kc_t(" ("), kc_current_view); }
kc::unparse(this->sorted, kc_printer, kc_current_view);
{ kc_printer(kc_t(");\
\n"), kc_current_view); }
} else
if ((this->fnclass_1->prod_sel() == sel_StaticFn)) {
} else
if ((this->fnclass_1->prod_sel() == sel_MemberFn)) {
} else
if ((this->fnclass_1->prod_sel() == sel_ConstructorFn)) {
} else
if ((this->fnclass_1->prod_sel() == sel_DestructorFn)) {
} else
if ((this->fnclass_1->prod_sel() == sel_ConvOperatorFn)) {
} else
goto kc_unparsing_default;
break;
}
case view_make_patternreps_enum: {
view_make_patternreps_class& kc_current_view=static_cast<view_make_patternreps_class&>(kc_current_view_base);
{
const Ctext ct = this->Ctext_1;
kc::unparse(ct, kc_printer, kc_current_view);
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
if ((this->ac_declaration_specifiers_1->prod_sel() == sel_Nilac_declaration_specifiers) && (this->ac_declarator_1->prod_sel() == sel_AcDeclarator) && (phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_pointer_option_1->prod_sel() == sel_Nopointer) && (phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_ref_option_1->prod_sel() == sel_AcNoRef) && (phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcQualifiedDeclProto) && (phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ac_class_qualifier_list_1->prod_sel() == sel_Nilac_class_qualifier_list) && (phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcDirectDeclId) && (phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ac_type_qualifier_1->prod_sel() == sel_AcNoQualifier) && (this->ac_declaration_list_1->prod_sel() == sel_Nilac_declaration_list) && (this->fnclass_1->prod_sel() == sel_ConstructorFn)) {
const ID pid = phylum_cast<const impl_ac_direct_declarator_AcDirectDeclId*>(phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1)->ID_1;
const Ctext ct = this->Ctext_1;
kc::unparse(ct, kc_printer, kc_current_view);
{
ID kc_selvar_0_1 = phylum_cast<ID>(pid);
if ((kc_selvar_0_1->prod_sel() == sel_Id)) {
const uniqID uid = phylum_cast<const impl_ID_Id*>(kc_selvar_0_1)->uniqID_1;
{
IDtype kc_selvar_1_1 = phylum_cast<IDtype>( uid->type );
if ((kc_selvar_1_1->prod_sel() == sel_ITUnknown)) {
v_report(Warning( FileLine(file, last_line),
Problem1S1ID( "constructor does not belong to phylum or operator:",
pid)));
} else
{
}
}
} else
kc_no_default_in_with( "", __LINE__, __FILE__ );
}
} else
if ((this->ac_declarator_1->prod_sel() == sel_AcDeclarator) && (phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_pointer_option_1->prod_sel() == sel_Nopointer) && (phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_ref_option_1->prod_sel() == sel_AcNoRef) && (phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcQualifiedDeclProto) && (phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ac_class_qualifier_list_1->prod_sel() == sel_Nilac_class_qualifier_list) && (phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcDirectDeclId) && (phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ac_parameter_type_list_1->prod_sel() == sel_AcParList) && (phylum_cast<const impl_ac_parameter_type_list_AcParList*>(phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ac_parameter_type_list_1)->ac_parameter_list_1->prod_sel() == sel_Nilac_parameter_list) && (phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ac_type_qualifier_1->prod_sel() == sel_AcNoQualifier) && (this->ac_declaration_list_1->prod_sel() == sel_Nilac_declaration_list) && (this->ac_opt_base_init_list_1->prod_sel() == sel_AcNoBaseInit) && (this->fnclass_1->prod_sel() == sel_DestructorFn)) {
const ID pid = phylum_cast<const impl_ac_direct_declarator_AcDirectDeclId*>(phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(this->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1)->ID_1;
const Ctext ct = this->Ctext_1;
kc::unparse(ct, kc_printer, kc_current_view);
{
ID kc_selvar_0_1 = phylum_cast<ID>(pid);
if ((kc_selvar_0_1->prod_sel() == sel_Id)) {
const uniqID uid = phylum_cast<const impl_ID_Id*>(kc_selvar_0_1)->uniqID_1;
{
IDtype kc_selvar_1_1 = phylum_cast<IDtype>( uid->type );
if ((kc_selvar_1_1->prod_sel() == sel_ITUnknown)) {
v_report(Warning( FileLine(file, last_line),
Problem1S1ID( "destructor does not belong to phylum or operator:",
pid)));
} else
{
}
}
} else
kc_no_default_in_with( "", __LINE__, __FILE__ );
}
} else
{
const Ctext ct = this->Ctext_1;
kc::unparse(ct, kc_printer, kc_current_view);
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_fnclass_ConvOperatorFn::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_fnclass_DestructorFn::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_fnclass_ConstructorFn::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_fnclass_MemberFn::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_fnclass_StaticFn::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
{ kc_printer(kc_t("static "), kc_current_view); }
}
break;
}
}
}
void
impl_fnclass_GlobalFn::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_fnk_c_enum: {
view_gen_fnk_c_class& kc_current_view=static_cast<view_gen_fnk_c_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_Ctext::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
gl_print_line_directive = false;
Ctext inversion_ = this->reverse();
for (Ctext iterator_ = inversion_; iterator_->Ctext_1 != 0; iterator_ = iterator_->Ctext_1)
iterator_->Ctext_elem_1->unparse(kc_printer, kc_current_view);
inversion_->freelist();
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (Ctext iterator_ = this; iterator_->Ctext_1 != 0; iterator_ = iterator_->Ctext_1)
iterator_->Ctext_elem_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_Ctext::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_Ctext_elem_CTextWithexpression::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_make_patternreps_enum: {
view_make_patternreps_class& kc_current_view=static_cast<view_make_patternreps_class&>(kc_current_view_base);
{
const withcases wc = this->withcases_1;
kc::unparse(wc, kc_printer, kc_current_view);
check_with_patterns(wc->wcinfo);
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const Ctext_elem ctw = this/**/;
const withexpressions wexpr = this->withexpressions_1;
const withcases wcs = this->withcases_1;
const contextinfo in_foreach_context = this->contextinfo_1;
if (wcs->wcinfo)
{
ID selvar;
int p;
patternchain fe_pc = 0;
withcasesinfo rewr_wcinfo = rewrite_withcasesinfo(wcs->wcinfo);
{
contextinfo kc_selvar_0_1 = phylum_cast<contextinfo>(in_foreach_context);
if ((kc_selvar_0_1->prod_sel() == sel_NotInForeachContext)) {
selvar = f_mkselvar("kc_selvar_", g_ctext_level);
selvar->line = ctw->line;
selvar->file = ctw->file;
cf_pushselvar( selvar );
inforeachcontext.push(0);
} else
if ((kc_selvar_0_1->prod_sel() == sel_InForeachContext)) {
const patternchain mp = phylum_cast<const impl_contextinfo_InForeachContext*>(kc_selvar_0_1)->patternchain_1;
selvar = cf_topselvar();
inforeachcontext.push(1);
fe_pc = mp;
} else
kc_no_default_in_with( "", __LINE__, __FILE__ );
}
{ kc_printer(kc_t("{\
\n"), kc_current_view); }
if (! inforeachcontext.top())
{
kc::unparse(wexpr, kc_printer, kc_current_view);
}
if (! inforeachcontext.top()) {
dollarvarstack.push( selvar );
dollarvarextstack.push( Id(Str(mkcasestring("_1"))) );
} else if ((p = pos_of_sole_dollar_or_pattern_in_patternchain(fe_pc)) >= 0) {
dollarvarstack.push( selvar );
dollarvarextstack.push( f_mkselvar("_", p) );
}
kc::unparse(rewr_wcinfo, kc_printer, view_gen_withcases_and_default);
if (! inforeachcontext.top()) {
cf_popselvar();
dollarvarstack.pop();
dollarvarextstack.pop();
} else if (p >= 0) {
dollarvarstack.pop();
dollarvarextstack.pop();
}
inforeachcontext.pop();
{ kc_printer(kc_t("}\
\n"), kc_current_view); }
gl_print_line_directive = true;
}
else { v_report(NonFatal( FileLine( this->file, this->line ), Problem1S( "internal error: no info for withcases of CTextWithexpression" )));
}
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const withexpressions we = this->withexpressions_1;
const withcases wc = this->withcases_1;
const contextinfo in_foreach_context = this->contextinfo_1;
withexpressionsstack.push( we );
{
contextinfo kc_selvar_0_1 = phylum_cast<contextinfo>(in_foreach_context);
if ((kc_selvar_0_1->prod_sel() == sel_NotInForeachContext)) {
inforeachcontext.push(0);
phylumnamesstack.push( we->type );
} else
if ((kc_selvar_0_1->prod_sel() == sel_InForeachContext)) {
inforeachcontext.push(1);
} else
kc_no_default_in_with( "", __LINE__, __FILE__ );
}
if (we->length() == 1) {
dollarvarsallowed.push( DVAllowed() );
} else {
dollarvarsallowed.push( DVDisallowed() );
}
kc::unparse(wc, kc_printer, kc_current_view);
kc::unparse(wc, kc_printer, view_set_type);
we->type = phylumnamesstack.top();
withexpressionsstack.pop();
dollarvarsallowed.pop();
kc::unparse(we, kc_printer, kc_current_view);
if (! inforeachcontext.top() ) {
phylumnamesstack.pop();
}
inforeachcontext.pop();
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_Ctext_elem_CTextForeachexpression::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_make_patternreps_enum: {
view_make_patternreps_class& kc_current_view=static_cast<view_make_patternreps_class&>(kc_current_view_base);
{
const Ctext ct = this->Ctext_1;
const foreach_after fa = this->foreach_after_1;
kc::unparse(ct, kc_printer, kc_current_view);
kc::unparse(fa, kc_printer, kc_current_view);
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const idCexpressions idcexpr = this->idCexpressions_1;
const Ctext ct = this->Ctext_1;
const foreach_after fa = this->foreach_after_1;
ID selvar = f_mkselvar("kc_selvar_", g_ctext_level);
selvar->line = this->line;
selvar->file = this->file;
cf_pushselvar( selvar );
{ kc_printer(kc_t("{\
\n"), kc_current_view); }
kc::unparse(idcexpr, kc_printer, kc_current_view);
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t("while(\
\n"), kc_current_view); }
kc::unparse(idcexpr, kc_printer, view_gen_initializephyla_whiletest_c);
{ kc_printer(kc_t(" ) {\
\n"), kc_current_view); }
kc::unparse(idcexpr, kc_printer, view_gen_initializephyla_init_el_c);
{ kc_printer(kc_t("{\n"), kc_current_view); }
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(ct->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(ct->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
kc::unparse(ct, kc_printer, kc_current_view);
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t("}\
\n"), kc_current_view); }
kc::unparse(idcexpr, kc_printer, view_gen_initializephyla_update_loop_c);
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t("}\
\n"), kc_current_view); }
cf_popselvar();
selvar = Id(Str(mkcasestring("kc_fe_selvar")));
selvar->line = fa->line;
selvar->file = fa->file;
cf_pushselvar( selvar );
kc::unparse(fa, kc_printer, kc_current_view);
{ kc_printer(kc_t("}\
\n"), kc_current_view); }
cf_popselvar();
gl_print_line_directive = true;
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const idCexpressions ide = this->idCexpressions_1;
const Ctext ct = this->Ctext_1;
const foreach_after fa = this->foreach_after_1;
phylumnames tmp = f_phylumnames_foreachwith_vars( ide );
phylumnamesstack.push( tmp );
kc::unparse(ide, kc_printer, kc_current_view);
kc::unparse(ct, kc_printer, kc_current_view);
phylumnamesstack.pop();
kc::unparse(fa, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_Ctext_elem_CTextCbody::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_make_patternreps_enum: {
view_make_patternreps_class& kc_current_view=static_cast<view_make_patternreps_class&>(kc_current_view_base);
{
const Ctext ct = this->Ctext_1;
kc::unparse(ct, kc_printer, kc_current_view);
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const Ctext ct = this->Ctext_1;
if (gl_print_line_directive)
{
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(this->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(this->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
gl_print_line_directive = false;
}
{ kc_printer(kc_t("{"), kc_current_view); }
kc::unparse(ct, kc_printer, kc_current_view);
{ kc_printer(kc_t("}"), kc_current_view); }
if (gl_print_line_directive)
{
{ kc_printer(kc_t("\
\n"), kc_current_view); }
}
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const Ctext ct = this->Ctext_1;
kc::unparse(ct, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_Ctext_elem_CTextCexpressionSQ::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const CexpressionSQ cesq = this->CexpressionSQ_1;
if (gl_print_line_directive)
{
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(this->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(this->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
gl_print_line_directive = false;
}
{ kc_printer(kc_t("'"), kc_current_view); }
kc::unparse(cesq, kc_printer, kc_current_view);
{ kc_printer(kc_t("'"), kc_current_view); }
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_Ctext_elem_CTextCexpressionDQ::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const CexpressionDQ cedq = this->CexpressionDQ_1;
if (gl_print_line_directive)
{
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(this->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(this->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
gl_print_line_directive = false;
}
{ kc_printer(kc_t("\""), kc_current_view); }
kc::unparse(cedq, kc_printer, kc_current_view);
{ kc_printer(kc_t("\""), kc_current_view); }
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_Ctext_elem_CTextNl::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const integer i = this->integer_1;
charruns nl_string = Newlines();
if (gl_print_line_directive)
{
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(this->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(this->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
gl_print_line_directive = false;
nl_string->set(i->value - 1);
}
else
{
nl_string->set(i->value);
}
kc::unparse(nl_string, kc_printer, kc_current_view);
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_Ctext_elem_CTextDollarVar::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const INT i = this->INT_1;
ID oid = f_emptyId(), dollarvar = dollarvarstack.top(), dollarvarext = dollarvarextstack.top();
argument arg;
bool nulvar = true;
{
INT kc_selvar_0_1 = phylum_cast<INT>( i );
if ((kc_selvar_0_1->prod_sel() == sel_Int)) {
const integer ii = phylum_cast<const impl_INT_Int*>(kc_selvar_0_1)->integer_1;
if (ii->value != 0) {
nulvar = false;
oid = operatorstack.top();
arg = f_argumentofoperator( oid, i );
}
} else
kc_no_default_in_with( "", __LINE__, __FILE__ );
}
if (nulvar)
{
kc::unparse(dollarvar, kc_printer, kc_current_view);
kc::unparse(dollarvarext, kc_printer, kc_current_view);
}
else
{
kc::unparse(dollarvar, kc_printer, kc_current_view);
kc::unparse(dollarvarext, kc_printer, kc_current_view);
{ kc_printer(kc_t("->"), kc_current_view); }
kc::unparse(arg, kc_printer, kc_current_view);
arg->free( false );
}
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
if ((this->INT_1->prod_sel() == sel_Int)) {
const INT i = this->INT_1;
const integer iv = phylum_cast<const impl_INT_Int*>(this->INT_1)->integer_1;
if ( f_DvIsDisallowed( dollarvarsallowed.top() )) {
v_report(NonFatal( FileLine( i->file, i->line ),
Problem1S1INT(
"illegal dollar variable (not allowed in &-ed pattern context)", i )));
} else if (!outmostoperators.empty()) {
v_check_dollarvar_attribute_in_operators( i, Nilunpattributes(),
outmostoperators.top() );
} else if (iv->value != 0) {
v_report(NonFatal( FileLine( i->file, i->line ),
Problem1S1INT( "illegal dollar variable", i )));
}
} else
goto kc_unparsing_default;
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_Ctext_elem_CTextLine::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const casestring cs = this->casestring_1;
if (gl_print_line_directive)
{
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(this->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(this->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
gl_print_line_directive = false;
}
kc::unparse(cs, kc_printer, kc_current_view);
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_foreach_after_ForeachAfter::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_make_patternreps_enum: {
view_make_patternreps_class& kc_current_view=static_cast<view_make_patternreps_class&>(kc_current_view_base);
{
const Ctext ct = this->Ctext_1;
kc::unparse(ct, kc_printer, kc_current_view);
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const Ctext ct = this->Ctext_1;
{ kc_printer(kc_t("{\n"), kc_current_view); }
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(ct->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(ct->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
kc::unparse(ct, kc_printer, kc_current_view);
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t("}\
\n"), kc_current_view); }
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const patternchain mp = this->patternchain_1;
const idCexpressions ide = this->idCexpressions_1;
const Ctext ct = this->Ctext_1;
phylumnames tmp = f_phylumnames_foreachwith_listvars( ide );
phylumnamesstack.push( tmp );
kc::unparse(ct, kc_printer, kc_current_view);
phylumnamesstack.pop();
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_foreach_after_NoForeachAfter::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_make_patternreps_enum: {
view_make_patternreps_class& kc_current_view=static_cast<view_make_patternreps_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_contextinfo_NotInForeachContext::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_contextinfo_InForeachContext::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_withexpressions::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const withexpression h = this->withexpression_1;
const withexpressions t = this->withexpressions_1;
ID selvar = cf_topselvar();
kc::unparse(t, kc_printer, kc_current_view);
g_withexpr_nr++;
if (h->line)
{
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(h->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(h->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
}
assertCond( ! (h->type->eq( f_emptyId())) );
kc::unparse(h->type, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(selvar, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(g_withexpr_nr, kc_printer, kc_current_view);
{ kc_printer(kc_t(" = phylum_cast<"), kc_current_view); }
kc::unparse(h->type, kc_printer, kc_current_view);
{ kc_printer(kc_t(">("), kc_current_view); }
kc::unparse(h, kc_printer, kc_current_view);
{ kc_printer(kc_t(");\
\n"), kc_current_view); }
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const withexpression h = this->withexpression_1;
const withexpressions t = this->withexpressions_1;
ID tmp_type = 0;
phylumnames tmp_types = 0;
t->type = phylumnamesstack.top();
{
phylumnames kc_selvar_0_1 = phylum_cast<phylumnames>( t->type );
if ((kc_selvar_0_1->prod_sel() == sel_Nilphylumnames)) {
tmp_type = f_emptyId();
tmp_types = Nilphylumnames();
} else
if ((kc_selvar_0_1->prod_sel() == sel_Consphylumnames)) {
const ID p_h = (kc_selvar_0_1)->ID_1;
const phylumnames p_t = (kc_selvar_0_1)->phylumnames_1;
tmp_type = p_h;
tmp_types = p_t;
} else
kc_no_default_in_with( "", __LINE__, __FILE__ );
}
phylumnamesstack.pop();
phylumnamesstack.push( tmp_types );
kc::unparse(t, kc_printer, kc_current_view);
h->type = tmp_type;
if (tmp_type->eq( f_emptyId())) {
v_report(NonFatal( FileLine( h->file, h->line ),
Problem1S1we( "could not infer type of with-expression argument:", h )));
}
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (withexpressions iterator_ = this; iterator_->withexpressions_1 != 0; iterator_ = iterator_->withexpressions_1)
iterator_->withexpression_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_withexpressions::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
g_withexpr_nr = 0;
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_withexpression_WECexpression::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const Cexpression cexpr = this->Cexpression_1;
kc::unparse(cexpr, kc_printer, kc_current_view);
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const Cexpression ce = this->Cexpression_1;
kc::unparse(ce, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_withexpression_WEVariable::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const ID id = this->ID_1;
kc::unparse(id, kc_printer, kc_current_view);
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const ID i = this->ID_1;
kc::unparse(i, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_withcases::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_make_patternreps_enum: {
view_make_patternreps_class& kc_current_view=static_cast<view_make_patternreps_class&>(kc_current_view_base);
{
const withcase wc = this->withcase_1;
const withcases r_wcs = this->withcases_1;
kc::unparse(wc, kc_printer, kc_current_view);
kc::unparse(r_wcs, kc_printer, kc_current_view);
this->wcinfo = r_wcs->wcinfo;
{
withcasesinfo kc_fe_selvar_1 = wc->wcinfo ;
while(
kc_fe_selvar_1->prod_sel() == sel_Conswithcasesinfo
) {
withcaseinfo kc_selvar_0_1 = kc_fe_selvar_1->withcaseinfo_1;
{
{
{
const withcaseinfo wci = kc_selvar_0_1;
this->wcinfo = insertin_withcasesinfo( wci, this->wcinfo );
}
}
}
kc_fe_selvar_1 = kc_fe_selvar_1->withcasesinfo_1;
}
}
}
break;
}
case view_set_type_enum: {
view_set_type_class& kc_current_view=static_cast<view_set_type_class&>(kc_current_view_base);
{
const withcase wc = this->withcase_1;
const withcases wcs = this->withcases_1;
kc::unparse(wcs, kc_printer, kc_current_view);
kc::unparse(wc, kc_printer, kc_current_view);
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const withcase wc = this->withcase_1;
const withcases wcs = this->withcases_1;
kc::unparse(wcs, kc_printer, kc_current_view);
kc::unparse(wc, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (withcases iterator_ = this; iterator_->withcases_1 != 0; iterator_ = iterator_->withcases_1)
iterator_->withcase_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_withcases::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_make_patternreps_enum: {
view_make_patternreps_class& kc_current_view=static_cast<view_make_patternreps_class&>(kc_current_view_base);
{
this->wcinfo = Nilwithcasesinfo();
}
break;
}
case view_set_type_enum: {
view_set_type_class& kc_current_view=static_cast<view_set_type_class&>(kc_current_view_base);
{
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_withcase_Withcase::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_make_patternreps_enum: {
view_make_patternreps_class& kc_current_view=static_cast<view_make_patternreps_class&>(kc_current_view_base);
{
const patternchains mp = this->patternchains_1;
const Ctext ct = this->Ctext_1;
kc::unparse(ct, kc_printer, kc_current_view);
v_resetbindingidmarks();
this->wcinfo = f_withcasesinfo( add_predicates_to_patternrepresentations(
syn_patternchains( mp ) ), ct );
}
break;
}
case view_set_type_enum: {
view_set_type_class& kc_current_view=static_cast<view_set_type_class&>(kc_current_view_base);
{
const patternchains mp = this->patternchains_1;
kc::unparse(mp, kc_printer, kc_current_view);
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const patternchains mp = this->patternchains_1;
const Ctext ct = this->Ctext_1;
outmostoperators.push( Niloperators() );
variablesstack.push( Nilvariables());
cl_scope++;
kc::unparse(mp, kc_printer, kc_current_view);
kc::unparse(ct, kc_printer, kc_current_view);
outmostoperators.top()->freelist();
outmostoperators.pop();
v_reset_variables_type( variablesstack.top() );
cl_scope--;
variablesstack.top()->freelist();
variablesstack.pop();
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_unparsedeclarations::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_checklanguagenames_enum: {
view_checklanguagenames_class& kc_current_view=static_cast<view_checklanguagenames_class&>(kc_current_view_base);
{
const unparsedeclaration ud = this->unparsedeclaration_1;
const unparsedeclarations uds = this->unparsedeclarations_1;
kc::unparse(uds, kc_printer, kc_current_view);
kc::unparse(ud, kc_printer, kc_current_view);
}
break;
}
case view_check_viewnames_enum: {
view_check_viewnames_class& kc_current_view=static_cast<view_check_viewnames_class&>(kc_current_view_base);
{
const unparsedeclaration ud = this->unparsedeclaration_1;
const unparsedeclarations uds = this->unparsedeclarations_1;
kc::unparse(uds, kc_printer, kc_current_view);
kc::unparse(ud, kc_printer, kc_current_view);
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const unparsedeclaration ud = this->unparsedeclaration_1;
const unparsedeclarations uds = this->unparsedeclarations_1;
kc::unparse(uds, kc_printer, kc_current_view);
kc::unparse(ud, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (unparsedeclarations iterator_ = this; iterator_->unparsedeclarations_1 != 0; iterator_ = iterator_->unparsedeclarations_1)
iterator_->unparsedeclaration_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_unparsedeclarations::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_checklanguagenames_enum: {
view_checklanguagenames_class& kc_current_view=static_cast<view_checklanguagenames_class&>(kc_current_view_base);
{
}
break;
}
case view_check_viewnames_enum: {
view_check_viewnames_class& kc_current_view=static_cast<view_check_viewnames_class&>(kc_current_view_base);
{
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_unparsedeclaration_UnparseDeclaration::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_checklanguagenames_enum: {
view_checklanguagenames_class& kc_current_view=static_cast<view_checklanguagenames_class&>(kc_current_view_base);
{
const unparseclauses uc = this->unparseclauses_1;
kc::unparse(uc, kc_printer, kc_current_view);
}
break;
}
case view_make_patternreps_enum: {
view_make_patternreps_class& kc_current_view=static_cast<view_make_patternreps_class&>(kc_current_view_base);
{
const outmostpatterns op = this->outmostpatterns_1;
const unparseclauses uc = this->unparseclauses_1;
kc::unparse(uc, kc_printer, kc_current_view);
v_resetbindingidmarks();
this->patternreps = syn_outmostpatterns( op );
this->patternreps = add_predicates_to_patternrepresentations(this->patternreps);
v_add_unparsedeclsinfo_to_operator( this->patternreps, uc );
}
break;
}
case view_check_viewnames_enum: {
view_check_viewnames_class& kc_current_view=static_cast<view_check_viewnames_class&>(kc_current_view_base);
{
const unparseclauses uc = this->unparseclauses_1;
kc::unparse(uc, kc_printer, kc_current_view);
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const outmostpatterns op = this->outmostpatterns_1;
const unparseclauses uc = this->unparseclauses_1;
outmostoperators.push( Niloperators() );
dollarvarsallowed.push( DVAllowed() );
phylumstack.push( f_emptyId() );
variablesstack.push( Nilvariables());
cl_scope++;
kc::unparse(op, kc_printer, kc_current_view);
kc::unparse(uc, kc_printer, kc_current_view);
outmostoperators.top()->freelist();
outmostoperators.pop();
dollarvarsallowed.pop();
phylumstack.pop();
v_reset_variables_type( variablesstack.top() );
cl_scope--;
variablesstack.top()->freelist();
variablesstack.pop();
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_unparseclauses::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_checklanguagenames_enum: {
view_checklanguagenames_class& kc_current_view=static_cast<view_checklanguagenames_class&>(kc_current_view_base);
{
const unparseclause uc = this->unparseclause_1;
const unparseclauses ucs = this->unparseclauses_1;
kc::unparse(ucs, kc_printer, kc_current_view);
kc::unparse(uc, kc_printer, kc_current_view);
}
break;
}
case view_make_patternreps_enum: {
view_make_patternreps_class& kc_current_view=static_cast<view_make_patternreps_class&>(kc_current_view_base);
{
const unparseclause a_uc = this->unparseclause_1;
const unparseclauses r_uc = this->unparseclauses_1;
kc::unparse(r_uc, kc_printer, kc_current_view);
kc::unparse(a_uc, kc_printer, kc_current_view);
}
break;
}
case view_check_viewnames_enum: {
view_check_viewnames_class& kc_current_view=static_cast<view_check_viewnames_class&>(kc_current_view_base);
{
const unparseclause uc = this->unparseclause_1;
const unparseclauses ucs = this->unparseclauses_1;
kc::unparse(ucs, kc_printer, kc_current_view);
kc::unparse(uc, kc_printer, kc_current_view);
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const unparseclause uc = this->unparseclause_1;
const unparseclauses ucs = this->unparseclauses_1;
kc::unparse(ucs, kc_printer, kc_current_view);
kc::unparse(uc, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (unparseclauses iterator_ = this; iterator_->unparseclauses_1 != 0; iterator_ = iterator_->unparseclauses_1)
iterator_->unparseclause_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_unparseclauses::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_checklanguagenames_enum: {
view_checklanguagenames_class& kc_current_view=static_cast<view_checklanguagenames_class&>(kc_current_view_base);
{
}
break;
}
case view_make_patternreps_enum: {
view_make_patternreps_class& kc_current_view=static_cast<view_make_patternreps_class&>(kc_current_view_base);
{
}
break;
}
case view_check_viewnames_enum: {
view_check_viewnames_class& kc_current_view=static_cast<view_check_viewnames_class&>(kc_current_view_base);
{
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_unparseclause_UnparseClause::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_checklanguagenames_enum: {
view_checklanguagenames_class& kc_current_view=static_cast<view_checklanguagenames_class&>(kc_current_view_base);
{
const unparseitems ui = this->unparseitems_1;
kc::unparse(ui, kc_printer, kc_current_view);
}
break;
}
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
{
const unparseitems ui = this->unparseitems_1;
kc::unparse(ui, kc_printer, kc_current_view);
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
{
const unparseitems ui = this->unparseitems_1;
kc::unparse(ui, kc_printer, kc_current_view);
}
break;
}
case view_make_patternreps_enum: {
view_make_patternreps_class& kc_current_view=static_cast<view_make_patternreps_class&>(kc_current_view_base);
{
const unparseitems u_i = this->unparseitems_1;
kc::unparse(u_i, kc_printer, kc_current_view);
}
break;
}
case view_check_viewnames_enum: {
view_check_viewnames_class& kc_current_view=static_cast<view_check_viewnames_class&>(kc_current_view_base);
{
const unparseitems ui = this->unparseitems_1;
The_current_unparseitems=ui;
kc::unparse(ui, kc_printer, kc_current_view);
The_current_unparseitems=NULL;
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const viewnames vn = this->viewnames_1;
const unparseitems ui = this->unparseitems_1;
kc::unparse(vn, kc_printer, view_check_u);
kc::unparse(ui, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_viewnames::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_rview_class_def_enum: {
view_rview_class_def_class& kc_current_view=static_cast<view_rview_class_def_class&>(kc_current_view_base);
{
const viewnames node = this/**/;
const ID vn = this->ID_1;
const viewnames r_vn = this->viewnames_1;
kc::unparse(r_vn, kc_printer, kc_current_view);
if(!node->is_extern)
{
{ kc_printer(kc_t("struct "), kc_current_view); }
if(g_options.dllexports!="") {
PRINT(g_options.dllexports.c_str());
PRINT(" ");
}
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("_class: rview_class {\
\n "), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("_class():rview_class("), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("_enum){}\
\n};\
\nextern "), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("_class "), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
}
else
{
{ kc_printer(kc_t("class "), kc_current_view); }
if(g_options.dllexports!="") {
PRINT(g_options.dllexports.c_str());
PRINT(" ");
}
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("_baseclass: public rview_class {\
\n\rprotected:\v\
\n "), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("_baseclass():rview_class("), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("_enum){}\
\n};\
\n// class "), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("_class is defined externally\
\n"), kc_current_view); }
}
}
break;
}
case view_uview_class_def_enum: {
view_uview_class_def_class& kc_current_view=static_cast<view_uview_class_def_class&>(kc_current_view_base);
{
const viewnames node = this/**/;
const ID vn = this->ID_1;
const viewnames r_vn = this->viewnames_1;
kc::unparse(r_vn, kc_printer, kc_current_view);
if(!node->is_extern)
{
{ kc_printer(kc_t("struct "), kc_current_view); }
if(g_options.dllexports!="") {
PRINT(g_options.dllexports.c_str());
PRINT(" ");
}
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("_class: uview_class {\
\n "), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("_class():uview_class("), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("_enum){}\
\n};\
\nextern "), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("_class "), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
}
else
{
{ kc_printer(kc_t("class "), kc_current_view); }
if(g_options.dllexports!="") {
PRINT(g_options.dllexports.c_str());
PRINT(" ");
}
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("_baseclass: public uview_class {\
\n\rprotected:\v\
\n "), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("_baseclass():uview_class("), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("_enum){}\
\n};\
\n// class "), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("_class is defined externally\
\n"), kc_current_view); }
}
}
break;
}
case view_gen_viewvars_c_enum: {
view_gen_viewvars_c_class& kc_current_view=static_cast<view_gen_viewvars_c_class&>(kc_current_view_base);
if ((this->viewnames_1->prod_sel() == sel_Nilviewnames)) {
const viewnames node = this/**/;
const ID vn = this->ID_1;
if(!node->is_extern)
{
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("_class "), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
}
} else
{
const viewnames node = this/**/;
const ID vn = this->ID_1;
const viewnames r_vn = this->viewnames_1;
kc::unparse(r_vn, kc_printer, kc_current_view);
if(!node->is_extern)
{
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("_class "), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
}
}
break;
}
case view_gen_unpk_c_enum: {
view_gen_unpk_c_class& kc_current_view=static_cast<view_gen_unpk_c_class&>(kc_current_view_base);
{
const viewnames node = this/**/;
const ID vn = this->ID_1;
const viewnames r_vn = this->viewnames_1;
kc::unparse(r_vn, kc_printer, kc_current_view);
if(!node->is_extern)
{
{ kc_printer(kc_t("{\""), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("\",&"), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("},\
\n "), kc_current_view); }
}
else
{
{ kc_printer(kc_t("{\""), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("\", 0},\
\n "), kc_current_view); }
}
}
break;
}
case view_uview_def_enum: {
view_uview_def_class& kc_current_view=static_cast<view_uview_def_class&>(kc_current_view_base);
{
const ID vn = this->ID_1;
const viewnames r_vn = this->viewnames_1;
kc::unparse(r_vn, kc_printer, kc_current_view);
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("_enum"), kc_current_view); }
{ kc_printer(kc_t(",\n\t"), kc_current_view); }
}
break;
}
case view_gen_unparsedecls_h_enum: {
view_gen_unparsedecls_h_class& kc_current_view=static_cast<view_gen_unparsedecls_h_class&>(kc_current_view_base);
if ((this->viewnames_1->prod_sel() == sel_Nilviewnames)) {
const ID vn = this->ID_1;
{ kc_printer(kc_t("\t"), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
} else
{
const ID vn = this->ID_1;
const viewnames r_vn = this->viewnames_1;
kc::unparse(r_vn, kc_printer, kc_current_view);
{ kc_printer(kc_t(",\n\t"), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
}
break;
}
case view_gen_rewritek_c_enum: {
view_gen_rewritek_c_class& kc_current_view=static_cast<view_gen_rewritek_c_class&>(kc_current_view_base);
{
const viewnames node = this/**/;
const ID vn = this->ID_1;
const viewnames r_vn = this->viewnames_1;
kc::unparse(r_vn, kc_printer, kc_current_view);
if(!node->is_extern)
{
{ kc_printer(kc_t("{\""), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("\",&"), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("},\
\n "), kc_current_view); }
}
else
{
{ kc_printer(kc_t("{\""), kc_current_view); }
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("\", 0},\
\n "), kc_current_view); }
}
}
break;
}
case view_gen_rewritek_h_enum: {
view_gen_rewritek_h_class& kc_current_view=static_cast<view_gen_rewritek_h_class&>(kc_current_view_base);
{
const ID vn = this->ID_1;
const viewnames r_vn = this->viewnames_1;
kc::unparse(r_vn, kc_printer, kc_current_view);
kc::unparse(vn, kc_printer, kc_current_view);
{ kc_printer(kc_t("_enum"), kc_current_view); }
{ kc_printer(kc_t(",\n\t"), kc_current_view); }
}
break;
}
case view_check_r_enum: {
view_check_r_class& kc_current_view=static_cast<view_check_r_class&>(kc_current_view_base);
{
const ID vn = this->ID_1;
const viewnames vns = this->viewnames_1;
kc::unparse(vns, kc_printer, kc_current_view);
if (pg_rviewshavebeendefined)
f_useoccurrviewname( vn );
else
v_extendoccur_nowarning( vn, ITUserRView() );
v_add_to_rviewnames( vn );
}
break;
}
case view_check_u_enum: {
view_check_u_class& kc_current_view=static_cast<view_check_u_class&>(kc_current_view_base);
{
const ID vn = this->ID_1;
const viewnames vns = this->viewnames_1;
kc::unparse(vns, kc_printer, kc_current_view);
if (pg_uviewshavebeendefined)
f_useoccuruviewname( vn );
else
v_extendoccur_nowarning( vn, ITUserUView() );
v_add_to_uviewnames( vn );
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (viewnames iterator_ = this; iterator_->viewnames_1 != 0; iterator_ = iterator_->viewnames_1)
iterator_->ID_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_viewnames::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_viewvars_c_enum: {
view_gen_viewvars_c_class& kc_current_view=static_cast<view_gen_viewvars_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_unpk_c_enum: {
view_gen_unpk_c_class& kc_current_view=static_cast<view_gen_unpk_c_class&>(kc_current_view_base);
{
}
break;
}
case view_uview_def_enum: {
view_uview_def_class& kc_current_view=static_cast<view_uview_def_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_unparsedecls_h_enum: {
view_gen_unparsedecls_h_class& kc_current_view=static_cast<view_gen_unparsedecls_h_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_rewritek_c_enum: {
view_gen_rewritek_c_class& kc_current_view=static_cast<view_gen_rewritek_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_rewritek_h_enum: {
view_gen_rewritek_h_class& kc_current_view=static_cast<view_gen_rewritek_h_class&>(kc_current_view_base);
{
}
break;
}
case view_check_r_enum: {
view_check_r_class& kc_current_view=static_cast<view_check_r_class&>(kc_current_view_base);
{
}
break;
}
case view_check_u_enum: {
view_check_u_class& kc_current_view=static_cast<view_check_u_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_unparseitems::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_output_collection_enum: {
view_output_collection_class& kc_current_view=static_cast<view_output_collection_class&>(kc_current_view_base);
if ((this->unparseitems_1->prod_sel() == sel_Nilunparseitems)) {
const unparseitem head = this->unparseitem_1;
kc::unparse(head, kc_printer, kc_current_view);
} else
{
const unparseitem head = this->unparseitem_1;
const unparseitems tail = this->unparseitems_1;
kc::unparse(head, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(tail, kc_printer, kc_current_view);
}
break;
}
case view_checklanguagenames_enum: {
view_checklanguagenames_class& kc_current_view=static_cast<view_checklanguagenames_class&>(kc_current_view_base);
{
const unparseitem ui = this->unparseitem_1;
const unparseitems uis = this->unparseitems_1;
kc::unparse(uis, kc_printer, kc_current_view);
kc::unparse(ui, kc_printer, kc_current_view);
}
break;
}
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
{
const unparseitem a_ui = this->unparseitem_1;
const unparseitems r_ui = this->unparseitems_1;
kc::unparse(r_ui, kc_printer, kc_current_view);
kc::unparse(a_ui, kc_printer, kc_current_view);
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
{
const unparseitem a_ui = this->unparseitem_1;
const unparseitems r_ui = this->unparseitems_1;
kc::unparse(r_ui, kc_printer, kc_current_view);
kc::unparse(a_ui, kc_printer, kc_current_view);
}
break;
}
case view_make_patternreps_enum: {
view_make_patternreps_class& kc_current_view=static_cast<view_make_patternreps_class&>(kc_current_view_base);
{
const unparseitem a_ui = this->unparseitem_1;
const unparseitems r_ui = this->unparseitems_1;
kc::unparse(r_ui, kc_printer, kc_current_view);
kc::unparse(a_ui, kc_printer, kc_current_view);
}
break;
}
case view_check_viewnames_enum: {
view_check_viewnames_class& kc_current_view=static_cast<view_check_viewnames_class&>(kc_current_view_base);
{
const unparseitem ui = this->unparseitem_1;
const unparseitems uis = this->unparseitems_1;
kc::unparse(uis, kc_printer, kc_current_view);
kc::unparse(ui, kc_printer, kc_current_view);
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const unparseitem ui = this->unparseitem_1;
const unparseitems uis = this->unparseitems_1;
kc::unparse(uis, kc_printer, kc_current_view);
kc::unparse(ui, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (unparseitems iterator_ = this; iterator_->unparseitems_1 != 0; iterator_ = iterator_->unparseitems_1)
iterator_->unparseitem_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_unparseitems::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_output_collection_enum: {
view_output_collection_class& kc_current_view=static_cast<view_output_collection_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("\t\"\""), kc_current_view); }
}
break;
}
case view_checklanguagenames_enum: {
view_checklanguagenames_class& kc_current_view=static_cast<view_checklanguagenames_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
{
}
break;
}
case view_make_patternreps_enum: {
view_make_patternreps_class& kc_current_view=static_cast<view_make_patternreps_class&>(kc_current_view_base);
{
}
break;
}
case view_check_viewnames_enum: {
view_check_viewnames_class& kc_current_view=static_cast<view_check_viewnames_class&>(kc_current_view_base);
{
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_unparseitem_UViewVarDecl::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
if ((this->Cexpression_1->prod_sel() == sel_NilCexpression)) {
const ID type = this->ID_1;
const ID name = this->ID_2;
{ kc_printer(kc_t("\t"), kc_current_view); }
kc::unparse(type, kc_printer, kc_current_view);
{ kc_printer(kc_t("_class "), kc_current_view); }
kc::unparse(name, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
} else
{
const ID type = this->ID_1;
const ID name = this->ID_2;
const Cexpression expr = this->Cexpression_1;
{ kc_printer(kc_t("\t"), kc_current_view); }
kc::unparse(type, kc_printer, kc_current_view);
{ kc_printer(kc_t("_class "), kc_current_view); }
kc::unparse(name, kc_printer, kc_current_view);
kc::unparse(expr, kc_printer, view_gen_initializephyla_c);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
if ((this->Cexpression_1->prod_sel() == sel_NilCexpression)) {
const ID type = this->ID_1;
const ID name = this->ID_2;
{ kc_printer(kc_t("\t"), kc_current_view); }
kc::unparse(type, kc_printer, kc_current_view);
{ kc_printer(kc_t("_class "), kc_current_view); }
kc::unparse(name, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
} else
{
const ID type = this->ID_1;
const ID name = this->ID_2;
const Cexpression expr = this->Cexpression_1;
{ kc_printer(kc_t("\t"), kc_current_view); }
kc::unparse(type, kc_printer, kc_current_view);
{ kc_printer(kc_t("_class "), kc_current_view); }
kc::unparse(name, kc_printer, kc_current_view);
kc::unparse(expr, kc_printer, view_gen_initializephyla_c);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
}
break;
}
case view_check_viewnames_enum: {
view_check_viewnames_class& kc_current_view=static_cast<view_check_viewnames_class&>(kc_current_view_base);
{
const ID vno = this->ID_1;
kc::unparse(vno, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_unparseitem_UnpBody::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_checklanguagenames_enum: {
view_checklanguagenames_class& kc_current_view=static_cast<view_checklanguagenames_class&>(kc_current_view_base);
if ((this->languageoption_1->prod_sel() == sel_NoLanguagename)) {
const unparseitems items = this->unparseitems_1;
kc::unparse(items, kc_printer, kc_current_view);
} else
if ((this->languageoption_1->prod_sel() == sel_LanguageList)) {
const languagenames qual = phylum_cast<const impl_languageoption_LanguageList*>(this->languageoption_1)->languagenames_1;
const unparseitems items = this->unparseitems_1;
f_useoccurlanguagename(qual);
kc::unparse(items, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
{
const languageoption lang = this->languageoption_1;
const unparseitems a_unparseitems = this->unparseitems_1;
kc::unparse(lang, kc_printer, kc_current_view);
{ kc_printer(kc_t("{\
\n"), kc_current_view); }
kc::unparse(a_unparseitems, kc_printer, kc_current_view);
{ kc_printer(kc_t(" }\
\n"), kc_current_view); }
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
{
const languageoption lang = this->languageoption_1;
const unparseitems a_unparseitems = this->unparseitems_1;
kc::unparse(lang, kc_printer, kc_current_view);
{ kc_printer(kc_t("{\
\n"), kc_current_view); }
kc::unparse(a_unparseitems, kc_printer, kc_current_view);
{ kc_printer(kc_t(" }\
\n"), kc_current_view); }
}
break;
}
case view_make_patternreps_enum: {
view_make_patternreps_class& kc_current_view=static_cast<view_make_patternreps_class&>(kc_current_view_base);
{
const unparseitems ui = this->unparseitems_1;
kc::unparse(ui, kc_printer, kc_current_view);
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const unparseitems ui = this->unparseitems_1;
kc::unparse(ui, kc_printer, kc_current_view);
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_unparseitem_UnpCtext::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_checklanguagenames_enum: {
view_checklanguagenames_class& kc_current_view=static_cast<view_checklanguagenames_class&>(kc_current_view_base);
if ((this->languageoption_1->prod_sel() == sel_NoLanguagename)) {
} else
if ((this->languageoption_1->prod_sel() == sel_LanguageList)) {
const languagenames qual = phylum_cast<const impl_languageoption_LanguageList*>(this->languageoption_1)->languagenames_1;
f_useoccurlanguagename(qual);
} else
goto kc_unparsing_default;
break;
}
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
{
const languageoption lang = this->languageoption_1;
const Ctext ct = this->Ctext_1;
kc::unparse(lang, kc_printer, kc_current_view);
if(lang->prod_sel()==sel_LanguageList)
{
{ kc_printer(kc_t("{\n"), kc_current_view); }
}
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(ct->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(ct->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
kc::unparse(ct, kc_printer, view_gen_initializephyla_c);
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
if(lang->prod_sel()==sel_LanguageList)
{
{ kc_printer(kc_t("}\n"), kc_current_view); }
}
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
{
const languageoption lang = this->languageoption_1;
const Ctext ct = this->Ctext_1;
kc::unparse(lang, kc_printer, kc_current_view);
if(lang->prod_sel()==sel_LanguageList)
{
{ kc_printer(kc_t("{\n"), kc_current_view); }
}
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(ct->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(ct->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
kc::unparse(ct, kc_printer, view_gen_initializephyla_c);
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
if(lang->prod_sel()==sel_LanguageList)
{
{ kc_printer(kc_t("}\n"), kc_current_view); }
}
}
break;
}
case view_make_patternreps_enum: {
view_make_patternreps_class& kc_current_view=static_cast<view_make_patternreps_class&>(kc_current_view_base);
{
const Ctext ct = this->Ctext_1;
kc::unparse(ct, kc_printer, kc_current_view);
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const Ctext ct = this->Ctext_1;
kc::unparse(ct, kc_printer, kc_current_view);
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_unparseitem_UnpSubexpr::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_checklanguagenames_enum: {
view_checklanguagenames_class& kc_current_view=static_cast<view_checklanguagenames_class&>(kc_current_view_base);
if ((this->languageoption_1->prod_sel() == sel_NoLanguagename)) {
} else
if ((this->languageoption_1->prod_sel() == sel_LanguageList)) {
const languagenames qual = phylum_cast<const impl_languageoption_LanguageList*>(this->languageoption_1)->languagenames_1;
f_useoccurlanguagename(qual);
} else
goto kc_unparsing_default;
break;
}
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
{
const languageoption lang = this->languageoption_1;
const unpsubterm sub = this->unpsubterm_1;
const viewnameoption a_vnameopt = this->viewnameoption_1;
ID phy = f_typeofunpsubterm( sub, operatorstack.top() );
kc::unparse(lang, kc_printer, kc_current_view);
{ kc_printer(kc_t("kc::unparse("), kc_current_view); }
kc::unparse(sub, kc_printer, kc_current_view);
{ kc_printer(kc_t(", kc_printer, "), kc_current_view); }
kc::unparse(a_vnameopt, kc_printer, kc_current_view);
{ kc_printer(kc_t(");\
\n"), kc_current_view); }
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
{
const languageoption lang = this->languageoption_1;
const unpsubterm sub = this->unpsubterm_1;
const viewnameoption a_vnameopt = this->viewnameoption_1;
ID phy = f_typeofunpsubterm( sub, operatorstack.top() );
kc::unparse(lang, kc_printer, kc_current_view);
{ kc_printer(kc_t("kc::unparse("), kc_current_view); }
kc::unparse(sub, kc_printer, kc_current_view);
{ kc_printer(kc_t(", kc_printer, "), kc_current_view); }
kc::unparse(a_vnameopt, kc_printer, kc_current_view);
{ kc_printer(kc_t(");\
\n"), kc_current_view); }
}
break;
}
case view_check_viewnames_enum: {
view_check_viewnames_class& kc_current_view=static_cast<view_check_viewnames_class&>(kc_current_view_base);
{
const viewnameoption vno = this->viewnameoption_1;
kc::unparse(vno, kc_printer, kc_current_view);
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const unpsubterm us = this->unpsubterm_1;
kc::unparse(us, kc_printer, kc_current_view);
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_unparseitem_UnpStr::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_collect_strings_enum: {
view_collect_strings_class& kc_current_view=static_cast<view_collect_strings_class&>(kc_current_view_base);
{
add_string_to_collection(this);
}
break;
}
case view_output_collection_enum: {
view_output_collection_class& kc_current_view=static_cast<view_output_collection_class&>(kc_current_view_base);
{
const CexpressionDQ expr = this->CexpressionDQ_1;
{ kc_printer(kc_t("\t\""), kc_current_view); }
kc::unparse(expr, kc_printer, kc_current_view);
{ kc_printer(kc_t("\""), kc_current_view); }
}
break;
}
case view_checklanguagenames_enum: {
view_checklanguagenames_class& kc_current_view=static_cast<view_checklanguagenames_class&>(kc_current_view_base);
if ((this->languageoption_1->prod_sel() == sel_NoLanguagename)) {
} else
if ((this->languageoption_1->prod_sel() == sel_LanguageList)) {
const languagenames qual = phylum_cast<const impl_languageoption_LanguageList*>(this->languageoption_1)->languagenames_1;
f_useoccurlanguagename(qual);
} else
goto kc_unparsing_default;
break;
}
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
{
const CexpressionDQ a_CexpressionDQ = this->CexpressionDQ_1;
const viewnameoption a_vnameopt = this->viewnameoption_1;
ug_viewnameopt = a_vnameopt;
if(pg_languageshavebeendefined)
{
static char buf[10];
static long last_nr=-1;
sprintf(buf,"%d",this->text_nr);
if(last_nr!=this->text_nr)
{
last_nr=this->text_nr;
{ kc_printer(kc_t(" { kc_printer(LANG_TEXT("), kc_current_view); }
kc_printer( buf, base_uview );
{ kc_printer(kc_t("), "), kc_current_view); }
kc::unparse(a_vnameopt, kc_printer, kc_current_view);
{ kc_printer(kc_t("); }\n"), kc_current_view); }
}
}
else
{
kc_printer( "", view_no_of_printed_string_chars_reset );
{ kc_printer(kc_t(" { kc_printer(kc_t(\""), kc_current_view); }
kc::unparse(a_CexpressionDQ, kc_printer, view_gen_unpstr_c);
{ kc_printer(kc_t("\"), "), kc_current_view); }
kc::unparse(a_vnameopt, kc_printer, kc_current_view);
{ kc_printer(kc_t("); }\
\n"), kc_current_view); }
}
ug_viewnameopt = 0;
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
{
const CexpressionDQ a_CexpressionDQ = this->CexpressionDQ_1;
const viewnameoption a_vnameopt = this->viewnameoption_1;
ug_viewnameopt = a_vnameopt;
if(pg_languageshavebeendefined)
{
static char buf[10];
static long last_nr=-1;
sprintf(buf,"%d",this->text_nr);
if(last_nr!=this->text_nr)
{
last_nr=this->text_nr;
{ kc_printer(kc_t(" { kc_printer(LANG_TEXT("), kc_current_view); }
kc_printer( buf, base_uview );
{ kc_printer(kc_t("), "), kc_current_view); }
kc::unparse(a_vnameopt, kc_printer, kc_current_view);
{ kc_printer(kc_t("); }\n"), kc_current_view); }
}
}
else
{
kc_printer( "", view_no_of_printed_string_chars_reset );
{ kc_printer(kc_t(" { kc_printer(kc_t(\""), kc_current_view); }
kc::unparse(a_CexpressionDQ, kc_printer, view_gen_unpstr_c);
{ kc_printer(kc_t("\"), "), kc_current_view); }
kc::unparse(a_vnameopt, kc_printer, kc_current_view);
{ kc_printer(kc_t("); }\
\n"), kc_current_view); }
}
ug_viewnameopt = 0;
}
break;
}
case view_check_viewnames_enum: {
view_check_viewnames_class& kc_current_view=static_cast<view_check_viewnames_class&>(kc_current_view_base);
{
const viewnameoption vno = this->viewnameoption_1;
kc::unparse(vno, kc_printer, kc_current_view);
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_unpsubterm_UnpCastedVariable::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
{
const ID a_id = this->ID_2;
kc::unparse(a_id, kc_printer, kc_current_view);
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
{
const ID a_id = this->ID_2;
kc::unparse(a_id, kc_printer, kc_current_view);
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_unpsubterm_UnpDollarvarAttr::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
{
const unpattributes a_unpattributes = this->unpattributes_1;
kc::unparse(this, kc_printer, view_gen_initializephyla_c);
kc::unparse(a_unpattributes, kc_printer, kc_current_view);
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
{
const unpattributes a_unpattributes = this->unpattributes_1;
kc::unparse(this, kc_printer, view_gen_initializephyla_c);
kc::unparse(a_unpattributes, kc_printer, kc_current_view);
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const INT i = this->INT_1;
ID oid = f_emptyId(), dollarvar = dollarvarstack.top(), dollarvarext = dollarvarextstack.top();
argument arg;
bool nulvar = true;
{
INT kc_selvar_0_1 = phylum_cast<INT>( i );
if ((kc_selvar_0_1->prod_sel() == sel_Int)) {
const integer ii = phylum_cast<const impl_INT_Int*>(kc_selvar_0_1)->integer_1;
if (ii->value != 0) {
nulvar = false;
oid = operatorstack.top();
arg = f_argumentofoperator( oid, i );
}
} else
kc_no_default_in_with( "", __LINE__, __FILE__ );
}
if (nulvar)
{
kc::unparse(dollarvar, kc_printer, kc_current_view);
kc::unparse(dollarvarext, kc_printer, kc_current_view);
}
else
{
kc::unparse(dollarvar, kc_printer, kc_current_view);
kc::unparse(dollarvarext, kc_printer, kc_current_view);
{ kc_printer(kc_t("->"), kc_current_view); }
kc::unparse(arg, kc_printer, kc_current_view);
arg->free( false );
}
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const INT i = this->INT_1;
const unpattributes unp_a = this->unpattributes_1;
v_check_dollarvar_attribute_in_operators( i, unp_a, outmostoperators.top() );
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_unpsubterm_UnpSubAttr::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
{
const ID st = this->ID_1;
const unpattributes a_unpattributes = this->unpattributes_1;
kc::unparse(st, kc_printer, kc_current_view);
kc::unparse(a_unpattributes, kc_printer, kc_current_view);
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
{
const ID st = this->ID_1;
const unpattributes a_unpattributes = this->unpattributes_1;
kc::unparse(st, kc_printer, kc_current_view);
kc::unparse(a_unpattributes, kc_printer, kc_current_view);
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const ID v_id = this->ID_1;
const unpattributes unp_a = this->unpattributes_1;
ID p_id;
if (f_useoccurpatternvariable( v_id ) && (p_id = f_phylumofpatternvariable( v_id)))
f_check_unpattributes_in_phylum( unp_a, p_id );
v_syn_type_attribute_ID( v_id );
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_unpsubterm_UnpDollarvarTerm::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
{
kc::unparse(this, kc_printer, view_gen_initializephyla_c);
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
{
kc::unparse(this, kc_printer, view_gen_initializephyla_c);
}
break;
}
case view_gen_initializephyla_c_enum: {
view_gen_initializephyla_c_class& kc_current_view=static_cast<view_gen_initializephyla_c_class&>(kc_current_view_base);
{
const INT i = this->INT_1;
ID oid = f_emptyId(), dollarvar = dollarvarstack.top(), dollarvarext = dollarvarextstack.top();
argument arg;
bool nulvar = true;
{
INT kc_selvar_0_1 = phylum_cast<INT>( i );
if ((kc_selvar_0_1->prod_sel() == sel_Int)) {
const integer ii = phylum_cast<const impl_INT_Int*>(kc_selvar_0_1)->integer_1;
if (ii->value != 0) {
nulvar = false;
oid = operatorstack.top();
arg = f_argumentofoperator( oid, i );
}
} else
kc_no_default_in_with( "", __LINE__, __FILE__ );
}
if (nulvar)
{
kc::unparse(dollarvar, kc_printer, kc_current_view);
kc::unparse(dollarvarext, kc_printer, kc_current_view);
}
else
{
kc::unparse(dollarvar, kc_printer, kc_current_view);
kc::unparse(dollarvarext, kc_printer, kc_current_view);
{ kc_printer(kc_t("->"), kc_current_view); }
kc::unparse(arg, kc_printer, kc_current_view);
arg->free( false );
}
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const INT i = this->INT_1;
v_check_dollarvar_attribute_in_operators( i, Nilunpattributes(),
outmostoperators.top() );
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_unpsubterm_UnpSubTerm::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
{
const ID st = this->ID_1;
kc::unparse(st, kc_printer, kc_current_view);
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
{
const ID st = this->ID_1;
kc::unparse(st, kc_printer, kc_current_view);
}
break;
}
case view_check_enum: {
view_check_class& kc_current_view=static_cast<view_check_class&>(kc_current_view_base);
{
const ID id = this->ID_1;
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_unpattributes::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
{
const ID a_attr = this->ID_1;
const unpattributes r_attr = this->unpattributes_1;
kc::unparse(r_attr, kc_printer, kc_current_view);
{ kc_printer(kc_t("->"), kc_current_view); }
kc::unparse(a_attr, kc_printer, kc_current_view);
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
{
const ID a_attr = this->ID_1;
const unpattributes r_attr = this->unpattributes_1;
kc::unparse(r_attr, kc_printer, kc_current_view);
{ kc_printer(kc_t("->"), kc_current_view); }
kc::unparse(a_attr, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (unpattributes iterator_ = this; iterator_->unpattributes_1 != 0; iterator_ = iterator_->unpattributes_1)
iterator_->ID_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_unpattributes::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_viewnameoption_YesViewname::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
{
const ID v = this->ID_1;
kc::unparse(v, kc_printer, kc_current_view);
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
{
const ID v = this->ID_1;
kc::unparse(v, kc_printer, kc_current_view);
}
break;
}
case view_check_viewnames_enum: {
view_check_viewnames_class& kc_current_view=static_cast<view_check_viewnames_class&>(kc_current_view_base);
{
const ID vn = this->ID_1;
if(!is_uview_var(vn)) f_useoccuruviewname( vn );
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_viewnameoption_NoViewname::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("kc_current_view"), kc_current_view); }
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("kc_current_view"), kc_current_view); }
}
break;
}
case view_check_viewnames_enum: {
view_check_viewnames_class& kc_current_view=static_cast<view_check_viewnames_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_languageoption_LanguageList::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
{
const languagenames langs = this->languagenames_1;
{ kc_printer(kc_t("if("), kc_current_view); }
kc::unparse(langs, kc_printer, kc_current_view);
{ kc_printer(kc_t(")\n "), kc_current_view); }
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
{
const languagenames langs = this->languagenames_1;
{ kc_printer(kc_t("if("), kc_current_view); }
kc::unparse(langs, kc_printer, kc_current_view);
{ kc_printer(kc_t(")\n "), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_languageoption_NoLanguagename::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_languagenames::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
if ((this->languagenames_1->prod_sel() == sel_Nillanguagenames)) {
const ID id = this->ID_1;
{ kc_printer(kc_t("is_language("), kc_current_view); }
kc::unparse(id, kc_printer, base_uview);
{ kc_printer(kc_t(")"), kc_current_view); }
} else
{
const ID id = this->ID_1;
const languagenames tail = this->languagenames_1;
kc::unparse(tail, kc_printer, kc_current_view);
{ kc_printer(kc_t(" || is_language("), kc_current_view); }
kc::unparse(id, kc_printer, base_uview);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
if ((this->languagenames_1->prod_sel() == sel_Nillanguagenames)) {
const ID id = this->ID_1;
{ kc_printer(kc_t("is_language("), kc_current_view); }
kc::unparse(id, kc_printer, base_uview);
{ kc_printer(kc_t(")"), kc_current_view); }
} else
{
const ID id = this->ID_1;
const languagenames tail = this->languagenames_1;
kc::unparse(tail, kc_printer, kc_current_view);
{ kc_printer(kc_t(" || is_language("), kc_current_view); }
kc::unparse(id, kc_printer, base_uview);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
case view_gen_unparsedecls_h_enum: {
view_gen_unparsedecls_h_class& kc_current_view=static_cast<view_gen_unparsedecls_h_class&>(kc_current_view_base);
if ((this->languagenames_1->prod_sel() == sel_Nillanguagenames)) {
const ID id = this->ID_1;
{ kc_printer(kc_t("extern char* kc_language_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("[];\n"), kc_current_view); }
} else
{
const ID id = this->ID_1;
const languagenames tail = this->languagenames_1;
kc::unparse(tail, kc_printer, kc_current_view);
{ kc_printer(kc_t("extern char* kc_language_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("[];\n"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (languagenames iterator_ = this; iterator_->languagenames_1 != 0; iterator_ = iterator_->languagenames_1)
iterator_->ID_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_languagenames::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_fileline_PosNoFileLine::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
if (pg_lineno != 0)
{
{ kc_printer(kc_t(" at "), kc_current_view); }
if (strcmp(pg_filename->name, "") != 0)
{
kc::unparse(pg_filename, kc_printer, kc_current_view);
}
{ kc_printer(kc_t(":"), kc_current_view); }
kc::unparse(pg_lineno, kc_printer, kc_current_view);
{ kc_printer(kc_t(" col:"), kc_current_view); }
kc::unparse(pg_column, kc_printer, kc_current_view);
}
}
break;
}
case view_error_format_enum: {
view_error_format_class& kc_current_view=static_cast<view_error_format_class&>(kc_current_view_base);
{
if (pg_lineno != 0) {
if (strcmp(pg_filename->name, "") != 0) {
kc_current_view.file(pg_filename->name);
}
kc_current_view.line(pg_lineno);
kc_current_view.column(pg_column);
}
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_fileline_NoFileLine::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
if (pg_lineno != 0)
{
{ kc_printer(kc_t(" at "), kc_current_view); }
if (strcmp(pg_filename->name, "") != 0)
{
kc::unparse(pg_filename, kc_printer, kc_current_view);
}
{ kc_printer(kc_t(":"), kc_current_view); }
kc::unparse(pg_lineno, kc_printer, kc_current_view);
}
}
break;
}
case view_error_format_enum: {
view_error_format_class& kc_current_view=static_cast<view_error_format_class&>(kc_current_view_base);
{
if (pg_lineno != 0) {
if (strcmp(pg_filename->name, "") != 0) {
kc_current_view.file(pg_filename->name);
}
kc_current_view.line(pg_lineno);
}
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_fileline_FileLine::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
if (line != 0)
{
{ kc_printer(kc_t(" at "), kc_current_view); }
if (strcmp(file->name, "") != 0)
{
kc::unparse(file, kc_printer, kc_current_view);
}
{ kc_printer(kc_t(":"), kc_current_view); }
kc::unparse(line, kc_printer, kc_current_view);
}
else if (pg_lineno != 0)
{
{ kc_printer(kc_t(" at "), kc_current_view); }
if (strcmp(pg_filename->name, "") != 0)
{
kc::unparse(pg_filename, kc_printer, kc_current_view);
}
{ kc_printer(kc_t(":"), kc_current_view); }
kc::unparse(pg_lineno, kc_printer, kc_current_view);
}
}
break;
}
case view_error_format_enum: {
view_error_format_class& kc_current_view=static_cast<view_error_format_class&>(kc_current_view_base);
{
if (line != 0) {
if (strcmp(file->name, "") != 0) {
kc_current_view.file(file->name);
}
kc_current_view.line(line);
} else if (pg_lineno != 0) {
if (strcmp(pg_filename->name, "") != 0) {
kc_current_view.file(pg_filename->name);
}
kc_current_view.line(pg_lineno);
}
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_scopetypefilelinestack::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (scopetypefilelinestack iterator_ = this; iterator_->scopetypefilelinestack_1 != 0; iterator_ = iterator_->scopetypefilelinestack_1)
iterator_->scopetypefileline_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_scopetypefilelinestack::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_scopetypefileline_ScopeTypeFileLine::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_IDtype_ITLanguageName::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_IDtype_ITPatternVariable::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_tID_enum: {
view_error_tID_class& kc_current_view=static_cast<view_error_tID_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("(it's a "), kc_current_view); }
kc::unparse(this, kc_printer, view_error);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("pattern variable"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_IDtype_ITUserFunction::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_tID_enum: {
view_error_tID_class& kc_current_view=static_cast<view_error_tID_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("(it's a "), kc_current_view); }
kc::unparse(this, kc_printer, view_error);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("function"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_IDtype_ITUserRView::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_tID_enum: {
view_error_tID_class& kc_current_view=static_cast<view_error_tID_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("(it's a "), kc_current_view); }
kc::unparse(this, kc_printer, view_error);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("rewrite view"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_IDtype_ITPredefinedRView::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_tID_enum: {
view_error_tID_class& kc_current_view=static_cast<view_error_tID_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("(it's a "), kc_current_view); }
kc::unparse(this, kc_printer, view_error);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("predefined rewrite view"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_IDtype_ITUViewVar::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_IDtype_ITUserUView::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_tID_enum: {
view_error_tID_class& kc_current_view=static_cast<view_error_tID_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("(it's a "), kc_current_view); }
kc::unparse(this, kc_printer, view_error);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("unparse view"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_IDtype_ITPredefinedUView::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_tID_enum: {
view_error_tID_class& kc_current_view=static_cast<view_error_tID_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("(it's a "), kc_current_view); }
kc::unparse(this, kc_printer, view_error);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("predefined unparse view"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_IDtype_ITStorageClass::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_tID_enum: {
view_error_tID_class& kc_current_view=static_cast<view_error_tID_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("(it's a "), kc_current_view); }
kc::unparse(this, kc_printer, view_error);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("storageclass"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_IDtype_ITPredefinedStorageClass::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_tID_enum: {
view_error_tID_class& kc_current_view=static_cast<view_error_tID_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("(it's a "), kc_current_view); }
kc::unparse(this, kc_printer, view_error);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("predefined storageclass"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_IDtype_ITUserOperator::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_tID_enum: {
view_error_tID_class& kc_current_view=static_cast<view_error_tID_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("(it's an "), kc_current_view); }
kc::unparse(this, kc_printer, view_error);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("operator"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_IDtype_ITPredefinedOperator::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_tID_enum: {
view_error_tID_class& kc_current_view=static_cast<view_error_tID_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("(it's a "), kc_current_view); }
kc::unparse(this, kc_printer, view_error);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("predefined operator"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_IDtype_ITUserPhylum::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_tID_enum: {
view_error_tID_class& kc_current_view=static_cast<view_error_tID_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("(it's a "), kc_current_view); }
kc::unparse(this, kc_printer, view_error);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("phylum"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_IDtype_ITPredefinedPhylum::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_tID_enum: {
view_error_tID_class& kc_current_view=static_cast<view_error_tID_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("(it's a "), kc_current_view); }
kc::unparse(this, kc_printer, view_error);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("predefined phylum"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_IDtype_ITUnknown::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_tID_enum: {
view_error_tID_class& kc_current_view=static_cast<view_error_tID_class&>(kc_current_view_base);
{
}
break;
}
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_operators::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (operators iterator_ = this; iterator_->operators_1 != 0; iterator_ = iterator_->operators_1)
iterator_->ID_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_operators::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_phyla::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_printdotedges_c_enum: {
view_gen_printdotedges_c_class& kc_current_view=static_cast<view_gen_printdotedges_c_class&>(kc_current_view_base);
{
const ID a_phy = this->ID_1;
const phyla r_phy = this->phyla_1;
kc::unparse(r_phy, kc_printer, kc_current_view);
{ kc_printer(kc_t(" case phylum_"), kc_current_view); }
kc::unparse(a_phy, kc_printer, kc_current_view);
{ kc_printer(kc_t(": {\
\n kc_do_printdot_id_of__"), kc_current_view); }
kc::unparse(a_phy, kc_printer, kc_current_view);
{ kc_printer(kc_t("(kc_f, kc_p->ptr_to.yt_"), kc_current_view); }
kc::unparse(a_phy, kc_printer, kc_current_view);
{ kc_printer(kc_t(", use_context_when_sharing_leaves, kc_p->ptr_from.yt_voidptr, kc_p->son_nr);\
\n break; }\
\n"), kc_current_view); }
}
break;
}
case view_gen_printdotdefs_c_enum: {
view_gen_printdotdefs_c_class& kc_current_view=static_cast<view_gen_printdotdefs_c_class&>(kc_current_view_base);
{
const ID a_phy = this->ID_1;
const phyla r_phy = this->phyla_1;
assertionFailed("Not used anymore");
kc::unparse(r_phy, kc_printer, kc_current_view);
{ kc_printer(kc_t(" assertReason(kc_phy != phylum_"), kc_current_view); }
kc::unparse(a_phy, kc_printer, kc_current_view);
{ kc_printer(kc_t(", \"kc_do_printdot_phylum called with phylum_"), kc_current_view); }
kc::unparse(a_phy, kc_printer, kc_current_view);
{ kc_printer(kc_t(" argument\");\
\n"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (phyla iterator_ = this; iterator_->phyla_1 != 0; iterator_ = iterator_->phyla_1)
iterator_->ID_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_phyla::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_printdotedges_c_enum: {
view_gen_printdotedges_c_class& kc_current_view=static_cast<view_gen_printdotedges_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_printdotdefs_c_enum: {
view_gen_printdotdefs_c_class& kc_current_view=static_cast<view_gen_printdotdefs_c_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_variables::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (variables iterator_ = this; iterator_->variables_1 != 0; iterator_ = iterator_->variables_1)
iterator_->ID_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_variables::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_dollarvarstatus_DVDisallowed::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_dollarvarstatus_DVAllowed::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_tribool_Bigger::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_tribool_Smaller::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_tribool_Equal::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_patternrepresentations::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (patternrepresentations iterator_ = this; iterator_->patternrepresentations_1 != 0; iterator_ = iterator_->patternrepresentations_1)
iterator_->patternrepresentation_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_patternrepresentations::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_patternrepresentation::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_unp_predicates_enum: {
view_unp_predicates_class& kc_current_view=static_cast<view_unp_predicates_class&>(kc_current_view_base);
if ((this->elem_patternrepresentation_1->prod_sel() == sel_PRUserPredicate) && (this->patternrepresentation_1->prod_sel() == sel_Nilpatternrepresentation)) {
const Cexpression cexpr = phylum_cast<const impl_elem_patternrepresentation_PRUserPredicate*>(this->elem_patternrepresentation_1)->Cexpression_1;
gl_outer_view=kc_current_view;
{ kc_printer(kc_t("KC_TRACE_PROVIDED(("), kc_current_view); }
kc::unparse(cexpr, kc_printer, view_gen_user_predicates);
{ kc_printer(kc_t("), \""), kc_current_view); }
kc::unparse(cexpr->file, kc_printer, kc_current_view);
{ kc_printer(kc_t("\", "), kc_current_view); }
kc::unparse(cexpr->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(", this)"), kc_current_view); }
} else
if ((this->elem_patternrepresentation_1->prod_sel() == sel_PRUserPredicate)) {
const Cexpression cexpr = phylum_cast<const impl_elem_patternrepresentation_PRUserPredicate*>(this->elem_patternrepresentation_1)->Cexpression_1;
const patternrepresentation r_p = this->patternrepresentation_1;
gl_outer_view=kc_current_view;
kc::unparse(r_p, kc_printer, kc_current_view);
{ kc_printer(kc_t(") && KC_TRACE_PROVIDED(("), kc_current_view); }
kc::unparse(cexpr, kc_printer, view_gen_user_predicates);
{ kc_printer(kc_t("), \""), kc_current_view); }
kc::unparse(cexpr->file, kc_printer, kc_current_view);
{ kc_printer(kc_t("\", "), kc_current_view); }
kc::unparse(cexpr->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(", this"), kc_current_view); }
} else
if ((this->patternrepresentation_1->prod_sel() == sel_Nilpatternrepresentation)) {
const elem_patternrepresentation p = this->elem_patternrepresentation_1;
kc::unparse(p, kc_printer, kc_current_view);
} else
{
const elem_patternrepresentation p = this->elem_patternrepresentation_1;
const patternrepresentation r_p = this->patternrepresentation_1;
kc::unparse(p, kc_printer, kc_current_view);
{ kc_printer(kc_t(") && ("), kc_current_view); }
kc::unparse(r_p, kc_printer, kc_current_view);
}
break;
}
case view_wc_predicates_enum: {
view_wc_predicates_class& kc_current_view=static_cast<view_wc_predicates_class&>(kc_current_view_base);
if ((this->elem_patternrepresentation_1->prod_sel() == sel_PRUserPredicate) && (this->patternrepresentation_1->prod_sel() == sel_Nilpatternrepresentation)) {
const Cexpression cexpr = phylum_cast<const impl_elem_patternrepresentation_PRUserPredicate*>(this->elem_patternrepresentation_1)->Cexpression_1;
gl_outer_view=kc_current_view;
{ kc_printer(kc_t("KC_TRACE_PROVIDED(("), kc_current_view); }
kc::unparse(cexpr, kc_printer, view_gen_user_predicates);
{ kc_printer(kc_t("), \""), kc_current_view); }
kc::unparse(cexpr->file, kc_printer, kc_current_view);
{ kc_printer(kc_t("\", "), kc_current_view); }
kc::unparse(cexpr->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(", this)"), kc_current_view); }
} else
if ((this->elem_patternrepresentation_1->prod_sel() == sel_PRUserPredicate)) {
const Cexpression cexpr = phylum_cast<const impl_elem_patternrepresentation_PRUserPredicate*>(this->elem_patternrepresentation_1)->Cexpression_1;
const patternrepresentation r_p = this->patternrepresentation_1;
gl_outer_view=kc_current_view;
kc::unparse(r_p, kc_printer, kc_current_view);
{ kc_printer(kc_t(") && KC_TRACE_PROVIDED(("), kc_current_view); }
kc::unparse(cexpr, kc_printer, view_gen_user_predicates);
{ kc_printer(kc_t("), \""), kc_current_view); }
kc::unparse(cexpr->file, kc_printer, kc_current_view);
{ kc_printer(kc_t("\", "), kc_current_view); }
kc::unparse(cexpr->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(", this"), kc_current_view); }
} else
if ((this->patternrepresentation_1->prod_sel() == sel_Nilpatternrepresentation)) {
const elem_patternrepresentation p = this->elem_patternrepresentation_1;
kc::unparse(p, kc_printer, kc_current_view);
} else
{
const elem_patternrepresentation p = this->elem_patternrepresentation_1;
const patternrepresentation r_p = this->patternrepresentation_1;
kc::unparse(p, kc_printer, kc_current_view);
{ kc_printer(kc_t(") && ("), kc_current_view); }
kc::unparse(r_p, kc_printer, kc_current_view);
}
break;
}
case view_rw_predicates_enum: {
view_rw_predicates_class& kc_current_view=static_cast<view_rw_predicates_class&>(kc_current_view_base);
if ((this->elem_patternrepresentation_1->prod_sel() == sel_PRUserPredicate) && (this->patternrepresentation_1->prod_sel() == sel_Nilpatternrepresentation)) {
const Cexpression cexpr = phylum_cast<const impl_elem_patternrepresentation_PRUserPredicate*>(this->elem_patternrepresentation_1)->Cexpression_1;
gl_outer_view=kc_current_view;
{ kc_printer(kc_t("KC_TRACE_PROVIDED(("), kc_current_view); }
kc::unparse(cexpr, kc_printer, view_gen_user_predicates);
{ kc_printer(kc_t("), \""), kc_current_view); }
kc::unparse(cexpr->file, kc_printer, kc_current_view);
{ kc_printer(kc_t("\", "), kc_current_view); }
kc::unparse(cexpr->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(", this)"), kc_current_view); }
} else
if ((this->elem_patternrepresentation_1->prod_sel() == sel_PRUserPredicate)) {
const Cexpression cexpr = phylum_cast<const impl_elem_patternrepresentation_PRUserPredicate*>(this->elem_patternrepresentation_1)->Cexpression_1;
const patternrepresentation r_p = this->patternrepresentation_1;
gl_outer_view=kc_current_view;
kc::unparse(r_p, kc_printer, kc_current_view);
{ kc_printer(kc_t(") && KC_TRACE_PROVIDED(("), kc_current_view); }
kc::unparse(cexpr, kc_printer, view_gen_user_predicates);
{ kc_printer(kc_t("), \""), kc_current_view); }
kc::unparse(cexpr->file, kc_printer, kc_current_view);
{ kc_printer(kc_t("\", "), kc_current_view); }
kc::unparse(cexpr->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(", this"), kc_current_view); }
} else
if ((this->patternrepresentation_1->prod_sel() == sel_Nilpatternrepresentation)) {
const elem_patternrepresentation p = this->elem_patternrepresentation_1;
kc::unparse(p, kc_printer, kc_current_view);
} else
{
const elem_patternrepresentation p = this->elem_patternrepresentation_1;
const patternrepresentation r_p = this->patternrepresentation_1;
kc::unparse(p, kc_printer, kc_current_view);
{ kc_printer(kc_t(") && ("), kc_current_view); }
kc::unparse(r_p, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (patternrepresentation iterator_ = this; iterator_->patternrepresentation_1 != 0; iterator_ = iterator_->patternrepresentation_1)
iterator_->elem_patternrepresentation_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_patternrepresentation::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_elem_patternrepresentation_PRIntLiteral::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
if ((this->path_1->prod_sel() == sel_Conspath)) {
const path p = this->path_1;
const path r_p = (this->path_1)->path_1;
const INT i = this->INT_1;
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(r_p, kc_printer, view_gen_cast);
kc::unparse(p, kc_printer, kc_current_view);
{ kc_printer(kc_t(")->value == "), kc_current_view); }
kc::unparse(i, kc_printer, kc_current_view);
} else
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_elem_patternrepresentation_PRStringLiteral::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
if ((this->path_1->prod_sel() == sel_Conspath)) {
const path p = this->path_1;
const path r_p = (this->path_1)->path_1;
const CexpressionDQ Cexprdq = this->CexpressionDQ_1;
if ((strcmp( f_strofID( f_typeof( p ) ), "casestring" ) == 0) ||
(strcmp( f_strofID( f_typeof( p ) ), "nocasestring" ) == 0)) {
{ kc_printer(kc_t("kc_strcmp("), kc_current_view); }
kc::unparse(r_p, kc_printer, view_gen_cast);
kc::unparse(p, kc_printer, kc_current_view);
{ kc_printer(kc_t("->name, kc_t(\""), kc_current_view); }
kc::unparse(Cexprdq, kc_printer, kc_current_view);
{ kc_printer(kc_t("\"))==0"), kc_current_view); }
} else {
assertionFailed("String literal type neither casestring nor nocasestring");
}
} else
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_elem_patternrepresentation_PRDefault::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
{ kc_printer(kc_t("1 /*default*/"), kc_current_view); }
}
break;
}
}
}
void
impl_elem_patternrepresentation_PRWildcard::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
{ kc_printer(kc_t("1 /*default*/"), kc_current_view); }
}
break;
}
}
}
void
impl_elem_patternrepresentation_PRNonLeafBinding::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_predicate_bindings_enum: {
view_predicate_bindings_class& kc_current_view=static_cast<view_predicate_bindings_class&>(kc_current_view_base);
if ((this->ID_1->prod_sel() == sel_Id) && (phylum_cast<const impl_ID_Id*>(this->ID_1)->uniqID_1->prod_sel() == sel_Str)) {
const path p = this->path_1;
const casestring id = phylum_cast<const impl_uniqID_Str*>(phylum_cast<const impl_ID_Id*>(this->ID_1)->uniqID_1)->casestring_1;
gl_bindings[id->name]=p;
} else
goto kc_unparsing_default;
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const path p = this->path_1;
const ID id = this->ID_1;
{
ID gl_type;
if (this->type->eq( f_emptyId())) {
gl_type = f_typeof( p );
} else {
gl_type = this->type;
}
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(id->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(id->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
{ kc_printer(kc_t(" const "), kc_current_view); }
kc::unparse(gl_type, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" = "), kc_current_view); }
{
path kc_selvar_0_1 = phylum_cast<path>(p);
if ((kc_selvar_0_1->prod_sel() == sel_Conspath)) {
const path r_p = (kc_selvar_0_1)->path_1;
r_p->unparse(kc_printer, view_gen_cast);
} else
if ((kc_selvar_0_1->prod_sel() == sel_Nilpath)) {
} else
kc_no_default_in_with( "", __LINE__, __FILE__ );
}
kc::unparse(p, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
}
}
break;
}
}
}
void
impl_elem_patternrepresentation_PRUserPredicate::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_elem_patternrepresentation_PROperPredicate::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_unp_predicates_enum: {
view_unp_predicates_class& kc_current_view=static_cast<view_unp_predicates_class&>(kc_current_view_base);
if ((this->path_1->prod_sel() == sel_Conspath) && ((this->path_1)->path_1->prod_sel() == sel_Conspath)) {
const path p = (this->path_1)->path_1;
const path r_p = ((this->path_1)->path_1)->path_1;
const ID id = this->ID_1;
kc::unparse(r_p, kc_printer, view_gen_cast);
kc::unparse(p, kc_printer, kc_current_view);
{ kc_printer(kc_t("->prod_sel() == sel_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
} else
if ((this->path_1->prod_sel() == sel_Nilpath)) {
} else
{
{ kc_printer(kc_t(" true "), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
if ((this->path_1->prod_sel() == sel_Conspath) && ((this->path_1)->path_1->prod_sel() == sel_Conspath)) {
const path p = (this->path_1)->path_1;
const path r_p = ((this->path_1)->path_1)->path_1;
const ID id = this->ID_1;
kc::unparse(r_p, kc_printer, view_gen_cast);
kc::unparse(p, kc_printer, kc_current_view);
{ kc_printer(kc_t("->prod_sel() == sel_"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
} else
if ((this->path_1->prod_sel() == sel_Nilpath)) {
} else
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_elem_patternrepresentation_PRVarPredicate::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const paths ps = this->paths_1;
kc::unparse(ps, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_elem_patternrepresentation_PRBinding::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_predicate_bindings_enum: {
view_predicate_bindings_class& kc_current_view=static_cast<view_predicate_bindings_class&>(kc_current_view_base);
if ((this->ID_1->prod_sel() == sel_Id) && (phylum_cast<const impl_ID_Id*>(this->ID_1)->uniqID_1->prod_sel() == sel_Str)) {
const path p = this->path_1;
const casestring id = phylum_cast<const impl_uniqID_Str*>(phylum_cast<const impl_ID_Id*>(this->ID_1)->uniqID_1)->casestring_1;
gl_bindings[id->name]=p;
} else
goto kc_unparsing_default;
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const path p = this->path_1;
const ID id = this->ID_1;
{
ID gl_type;
if (this->type->eq( f_emptyId())) {
gl_type = f_typeof( p );
} else {
gl_type = this->type;
}
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(id->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(id->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
{ kc_printer(kc_t(" const "), kc_current_view); }
kc::unparse(gl_type, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t(" = "), kc_current_view); }
{
path kc_selvar_0_1 = phylum_cast<path>(p);
if ((kc_selvar_0_1->prod_sel() == sel_Conspath)) {
const path r_p = (kc_selvar_0_1)->path_1;
r_p->unparse(kc_printer, view_gen_cast);
} else
if ((kc_selvar_0_1->prod_sel() == sel_Nilpath)) {
} else
kc_no_default_in_with( "", __LINE__, __FILE__ );
}
kc::unparse(p, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
}
}
break;
}
}
}
void
impl_path::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_cast_enum: {
view_gen_cast_class& kc_current_view=static_cast<view_gen_cast_class&>(kc_current_view_base);
{
const integer i = this->integer_1;
const path r_p = this->path_1;
bool isnotlist = f_listelementphylum(f_phylumofoperator(this->op))->eq(f_emptyId());
if(isnotlist)
{
{ kc_printer(kc_t("phylum_cast<const "), kc_current_view); }
kc::unparse(this->op, kc_printer, view_class_of_op);
{ kc_printer(kc_t("*>"), kc_current_view); }
}
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(r_p, kc_printer, kc_current_view);
}
break;
}
case view_rw_bindings_enum: {
view_rw_bindings_class& kc_current_view=static_cast<view_rw_bindings_class&>(kc_current_view_base);
if ((this->path_1->prod_sel() == sel_Nilpath)) {
const integer i = this->integer_1;
const path r_p = this->path_1;
argument gl_argument = f_argumentofoperator( r_p->op, Int( i ));
if (!g_options.rw_loop)
{
{ kc_printer(kc_t("l_"), kc_current_view); }
}
kc::unparse(gl_argument, kc_printer, kc_current_view);
gl_argument->free(false);
} else
goto kc_unparsing_default;
break;
}
case view_unp_bindings_enum: {
view_unp_bindings_class& kc_current_view=static_cast<view_unp_bindings_class&>(kc_current_view_base);
if ((this->path_1->prod_sel() == sel_Nilpath)) {
const integer i = this->integer_1;
const path r_p = this->path_1;
argument gl_argument = f_argumentofoperator( r_p->op, Int( i ));
{ kc_printer(kc_t("this->"), kc_current_view); }
kc::unparse(gl_argument, kc_printer, kc_current_view);
gl_argument->free(false);
} else
goto kc_unparsing_default;
break;
}
case view_wc_bindings_enum: {
view_wc_bindings_class& kc_current_view=static_cast<view_wc_bindings_class&>(kc_current_view_base);
if ((this->path_1->prod_sel() == sel_Nilpath)) {
const integer i = this->integer_1;
ID selvar = cf_topselvar();
kc::unparse(selvar, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(i, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_unp_predicates_enum: {
view_unp_predicates_class& kc_current_view=static_cast<view_unp_predicates_class&>(kc_current_view_base);
if ((this->path_1->prod_sel() == sel_Nilpath)) {
const integer i = this->integer_1;
const path r_p = this->path_1;
argument gl_argument = f_argumentofoperator( r_p->op, Int( i ));
{ kc_printer(kc_t("this->"), kc_current_view); }
kc::unparse(gl_argument, kc_printer, kc_current_view);
gl_argument->free(false);
} else
goto kc_unparsing_default;
break;
}
case view_wc_predicates_enum: {
view_wc_predicates_class& kc_current_view=static_cast<view_wc_predicates_class&>(kc_current_view_base);
if ((this->path_1->prod_sel() == sel_Nilpath)) {
const integer i = this->integer_1;
ID selvar = cf_topselvar();
kc::unparse(selvar, kc_printer, kc_current_view);
{ kc_printer(kc_t("_"), kc_current_view); }
kc::unparse(i, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_rw_predicates_enum: {
view_rw_predicates_class& kc_current_view=static_cast<view_rw_predicates_class&>(kc_current_view_base);
if ((this->path_1->prod_sel() == sel_Nilpath)) {
const integer i = this->integer_1;
const path r_p = this->path_1;
argument gl_argument = f_argumentofoperator( r_p->op, Int( i ));
if (!g_options.rw_loop)
{
{ kc_printer(kc_t("l_"), kc_current_view); }
}
kc::unparse(gl_argument, kc_printer, kc_current_view);
gl_argument->free(false);
} else
goto kc_unparsing_default;
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const integer i = this->integer_1;
const path r_p = this->path_1;
kc::unparse(r_p, kc_printer, kc_current_view);
{ kc_printer(kc_t(")->"), kc_current_view); }
argument gl_argument = f_argumentofoperator( r_p->op, Int( i ));
kc::unparse(gl_argument, kc_printer, kc_current_view);
gl_argument->free(false);
}
break;
}
}
}
void
impl_path::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_rw_bindings_enum: {
view_rw_bindings_class& kc_current_view=static_cast<view_rw_bindings_class&>(kc_current_view_base);
{
if (gl_args->is_nil() || g_options.rw_loop)
{
{ kc_printer(kc_t("this"), kc_current_view); }
}
else
{
{ kc_printer(kc_t("((("), kc_current_view); }
kc::unparse(gl_args, kc_printer, view_gen_rewritedefs_dotestarg_c);
{ kc_printer(kc_t(")) ? this : "), kc_current_view); }
kc::unparse(gl_operator, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(gl_args, kc_printer, view_gen_rewritedefs_args_c);
{ kc_printer(kc_t("))"), kc_current_view); }
}
}
break;
}
case view_unp_bindings_enum: {
view_unp_bindings_class& kc_current_view=static_cast<view_unp_bindings_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("this/**/"), kc_current_view); }
}
break;
}
case view_unp_predicates_enum: {
view_unp_predicates_class& kc_current_view=static_cast<view_unp_predicates_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("this/**/"), kc_current_view); }
}
break;
}
case view_rw_predicates_enum: {
view_rw_predicates_class& kc_current_view=static_cast<view_rw_predicates_class&>(kc_current_view_base);
{
if (gl_args->is_nil() || g_options.rw_loop)
{
{ kc_printer(kc_t("this"), kc_current_view); }
}
else
{
{ kc_printer(kc_t("((("), kc_current_view); }
kc::unparse(gl_args, kc_printer, view_gen_rewritedefs_dotestarg_c);
{ kc_printer(kc_t(")) ? this : "), kc_current_view); }
kc::unparse(gl_operator, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(gl_args, kc_printer, view_gen_rewritedefs_args_c);
{ kc_printer(kc_t("))"), kc_current_view); }
}
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
}
break;
}
}
}
void
impl_paths::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
if ((this->path_1->prod_sel() == sel_Conspath) && (this->paths_1->prod_sel() == sel_Conspaths) && ((this->paths_1)->path_1->prod_sel() == sel_Conspath) && ((this->paths_1)->paths_1->prod_sel() == sel_Nilpaths)) {
const path p1 = this->path_1;
const path r_p1 = (this->path_1)->path_1;
const path p2 = (this->paths_1)->path_1;
const path r_p2 = ((this->paths_1)->path_1)->path_1;
kc::unparse(r_p1, kc_printer, view_gen_cast);
kc::unparse(p1, kc_printer, kc_current_view);
{ kc_printer(kc_t("->eq("), kc_current_view); }
kc::unparse(r_p2, kc_printer, view_gen_cast);
kc::unparse(p2, kc_printer, kc_current_view);
{ kc_printer(kc_t(")"), kc_current_view); }
} else
if ((this->path_1->prod_sel() == sel_Conspath) && (this->paths_1->prod_sel() == sel_Conspaths) && ((this->paths_1)->path_1->prod_sel() == sel_Conspath)) {
const path p1 = this->path_1;
const path r_p1 = (this->path_1)->path_1;
const paths pp1 = this->paths_1;
const path p2 = (this->paths_1)->path_1;
const path r_p2 = ((this->paths_1)->path_1)->path_1;
kc::unparse(r_p1, kc_printer, view_gen_cast);
kc::unparse(p1, kc_printer, kc_current_view);
{ kc_printer(kc_t("->eq("), kc_current_view); }
kc::unparse(r_p2, kc_printer, view_gen_cast);
kc::unparse(p2, kc_printer, kc_current_view);
{ kc_printer(kc_t(")) && ("), kc_current_view); }
kc::unparse(pp1, kc_printer, kc_current_view);
} else
if ((this->paths_1->prod_sel() == sel_Nilpaths)) {
} else
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
path_1->unparse(kc_printer, kc_current_view );
paths_1->do_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_paths::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
}
break;
}
}
}
void
impl_argsnumbers::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_rewritek_c_enum: {
view_gen_rewritek_c_class& kc_current_view=static_cast<view_gen_rewritek_c_class&>(kc_current_view_base);
{
const integer i = this->integer_1;
const argsnumbers r = this->argsnumbers_1;
{ kc_printer(kc_t(" case "), kc_current_view); }
kc::unparse(i, kc_printer, kc_current_view);
{ kc_printer(kc_t(": return kc_create(kc_op"), kc_current_view); }
for (int j=0; j<i->value; ++j)
{
{ kc_printer(kc_t(", sons[son_offset"), kc_current_view); }
if (j!=0)
{
{ kc_printer(kc_t("+"), kc_current_view); }
kc::unparse(j, kc_printer, kc_current_view);
}
{ kc_printer(kc_t("]"), kc_current_view); }
}
{ kc_printer(kc_t(");\
\n"), kc_current_view); }
kc::unparse(r, kc_printer, kc_current_view);
}
break;
}
case view_gen_copydefs_c_enum: {
view_gen_copydefs_c_class& kc_current_view=static_cast<view_gen_copydefs_c_class&>(kc_current_view_base);
{
const integer i = this->integer_1;
const argsnumbers r = this->argsnumbers_1;
{ kc_printer(kc_t(" case "), kc_current_view); }
kc::unparse(i, kc_printer, kc_current_view);
{ kc_printer(kc_t(": kc_answer = kc_create(prod_sel()"), kc_current_view); }
for (int j=0; j<i->value; ++j)
{
{ kc_printer(kc_t(", kc_subtmp["), kc_current_view); }
kc::unparse(j, kc_printer, kc_current_view);
{ kc_printer(kc_t("]"), kc_current_view); }
}
{ kc_printer(kc_t("); break;\
\n"), kc_current_view); }
kc::unparse(r, kc_printer, kc_current_view);
}
break;
}
case view_gen_csgio_c_enum: {
view_gen_csgio_c_class& kc_current_view=static_cast<view_gen_csgio_c_class&>(kc_current_view_base);
{
const integer i = this->integer_1;
const argsnumbers r = this->argsnumbers_1;
{ kc_printer(kc_t(" case "), kc_current_view); }
kc::unparse(i, kc_printer, kc_current_view);
{ kc_printer(kc_t(": kc_answer = kc_create(kc_op"), kc_current_view); }
for (int j=0; j<i->value; ++j)
{
{ kc_printer(kc_t(", kc_subtmp["), kc_current_view); }
kc::unparse(j, kc_printer, kc_current_view);
{ kc_printer(kc_t("]"), kc_current_view); }
}
{ kc_printer(kc_t("); break;\
\n"), kc_current_view); }
kc::unparse(r, kc_printer, kc_current_view);
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (argsnumbers iterator_ = this; iterator_->argsnumbers_1 != 0; iterator_ = iterator_->argsnumbers_1)
iterator_->integer_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_argsnumbers::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_rewritek_c_enum: {
view_gen_rewritek_c_class& kc_current_view=static_cast<view_gen_rewritek_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_copydefs_c_enum: {
view_gen_copydefs_c_class& kc_current_view=static_cast<view_gen_copydefs_c_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_csgio_c_enum: {
view_gen_csgio_c_class& kc_current_view=static_cast<view_gen_csgio_c_class&>(kc_current_view_base);
{
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_rewriterulesinfo::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_rewritedefs_other_c_enum: {
view_gen_rewritedefs_other_c_class& kc_current_view=static_cast<view_gen_rewritedefs_other_c_class&>(kc_current_view_base);
if ((this->rewriteruleinfo_1->prod_sel() == sel_Rewriteruleinfo) && (phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->patternrepresentation_1->prod_sel() == sel_Conspatternrepresentation) && ((phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->patternrepresentation_1)->patternrepresentation_1->prod_sel() == sel_Nilpatternrepresentation) && (phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->rewriteclause_1->prod_sel() == sel_RewriteClause)) {
const elem_patternrepresentation rep = (phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->patternrepresentation_1)->elem_patternrepresentation_1;
const patternrepresentation bindings = phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->patternrepresentation_2;
const term t = phylum_cast<const impl_rewriteclause_RewriteClause*>(phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->rewriteclause_1)->term_1;
const rewriterulesinfo r_rri = this->rewriterulesinfo_1;
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(rep->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(rep->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
{ kc_printer(kc_t(" { KC_TRACE_REWRITE_MATCH(kc_current_view, \""), kc_current_view); }
kc::unparse(rep->file, kc_printer, kc_current_view);
{ kc_printer(kc_t("\", "), kc_current_view); }
kc::unparse(rep->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(", this);\
\n"), kc_current_view); }
kc::unparse(bindings, kc_printer, view_rw_bindings);
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(t->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(t->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
if(g_options.rw_loop)
{
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t(" kc_result = "), kc_current_view); }
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t(" KC_TRACE_REWRITE_RESULT(kc_current_view,\""), kc_current_view); }
kc::unparse(t->file, kc_printer, kc_current_view);
{ kc_printer(kc_t("\","), kc_current_view); }
kc::unparse(t->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(",kc_result);\
\n return kc_result;\
\n"), kc_current_view); }
}
else
{
if(g_options.smart_pointer)
{
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t("_ptr kc_result = "), kc_current_view); }
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t(" KC_TRACE_REWRITE_RESULT(kc_current_view,\""), kc_current_view); }
kc::unparse(t->file, kc_printer, kc_current_view);
{ kc_printer(kc_t("\","), kc_current_view); }
kc::unparse(t->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(",kc_result);\
\n return (kc_result() == this ? this : kc_result->rewrite( kc_current_view_base ))->return_ptr();\
\n"), kc_current_view); }
}
else
{
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t(" kc_result = "), kc_current_view); }
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t(" KC_TRACE_REWRITE_RESULT(kc_current_view,\""), kc_current_view); }
kc::unparse(t->file, kc_printer, kc_current_view);
{ kc_printer(kc_t("\","), kc_current_view); }
kc::unparse(t->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(",kc_result);\
\n return (const_cast<const impl_"), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t("*>(kc_result) == this) ? this : kc_result->rewrite( kc_current_view_base );\
\n"), kc_current_view); }
}
}
{ kc_printer(kc_t("\
\n }\
\n"), kc_current_view); }
if (g_options.warn_drop_identical_patterns) {
rewriterulesinfo kc_selvar_0_1 = phylum_cast<rewriterulesinfo>(r_rri);
if ((kc_selvar_0_1->prod_sel() == sel_Consrewriterulesinfo)) {
{
rewriterulesinfo kc_fe_selvar_1 = kc_selvar_0_1;
while(
kc_fe_selvar_1->prod_sel() == sel_Consrewriterulesinfo
) {
rewriteruleinfo kc_selvar_1_1 = kc_fe_selvar_1->rewriteruleinfo_1;
{
{
{
const rewriteruleinfo rri = kc_selvar_1_1;
warn_drop_identical_pattern(rri);
}
}
}
kc_fe_selvar_1 = kc_fe_selvar_1->rewriterulesinfo_1;
}
}
} else
if ((kc_selvar_0_1->prod_sel() == sel_Nilrewriterulesinfo)) {
} else
kc_no_default_in_with( "", __LINE__, __FILE__ );
}
} else
if ((this->rewriteruleinfo_1->prod_sel() == sel_Rewriteruleinfo) && (phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->patternrepresentation_1->prod_sel() == sel_Nilpatternrepresentation) && (phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->rewriteclause_1->prod_sel() == sel_RewriteClause)) {
const patternrepresentation bindings = phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->patternrepresentation_2;
const term t = phylum_cast<const impl_rewriteclause_RewriteClause*>(phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->rewriteclause_1)->term_1;
assertionFailed("Completely empty rewrite pattern not possible.");
} else
if ((this->rewriteruleinfo_1->prod_sel() == sel_Rewriteruleinfo) && (phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->patternrepresentation_1->prod_sel() == sel_Conspatternrepresentation) && (phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->rewriteclause_1->prod_sel() == sel_RewriteClause)) {
const elem_patternrepresentation rep = (phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->patternrepresentation_1)->elem_patternrepresentation_1;
const patternrepresentation r_p = (phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->patternrepresentation_1)->patternrepresentation_1;
const patternrepresentation bindings = phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->patternrepresentation_2;
const term t = phylum_cast<const impl_rewriteclause_RewriteClause*>(phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->rewriteclause_1)->term_1;
const rewriterulesinfo r_rri = this->rewriterulesinfo_1;
gl_bindings.clear();
kc::unparse(bindings, kc_printer, view_predicate_bindings);
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(rep->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(rep->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
{ kc_printer(kc_t(" if (("), kc_current_view); }
kc::unparse(r_p, kc_printer, view_rw_predicates);
{ kc_printer(kc_t(")) { KC_TRACE_REWRITE_MATCH(kc_current_view, \""), kc_current_view); }
kc::unparse(rep->file, kc_printer, kc_current_view);
{ kc_printer(kc_t("\", "), kc_current_view); }
kc::unparse(rep->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(", this);\
\n"), kc_current_view); }
kc::unparse(bindings, kc_printer, view_rw_bindings);
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(t->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(t->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
if(g_options.rw_loop)
{
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t(" kc_result = "), kc_current_view); }
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t(" KC_TRACE_REWRITE_RESULT(kc_current_view,\""), kc_current_view); }
kc::unparse(t->file, kc_printer, kc_current_view);
{ kc_printer(kc_t("\","), kc_current_view); }
kc::unparse(t->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(",kc_result);\
\n return kc_result;\
\n"), kc_current_view); }
}
else
{
if(g_options.smart_pointer)
{
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t("_ptr kc_result = "), kc_current_view); }
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t(" KC_TRACE_REWRITE_RESULT(kc_current_view,\""), kc_current_view); }
kc::unparse(t->file, kc_printer, kc_current_view);
{ kc_printer(kc_t("\","), kc_current_view); }
kc::unparse(t->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(",kc_result);\
\n return (kc_result() == this ? this : kc_result->rewrite( kc_current_view_base ))->return_ptr();\
\n"), kc_current_view); }
}
else
{
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t(" kc_result = "), kc_current_view); }
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t(" KC_TRACE_REWRITE_RESULT(kc_current_view,\""), kc_current_view); }
kc::unparse(t->file, kc_printer, kc_current_view);
{ kc_printer(kc_t("\","), kc_current_view); }
kc::unparse(t->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(",kc_result);\
\n return (const_cast<const impl_"), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t("*>(kc_result) == this) ? this : kc_result->rewrite( kc_current_view_base );\
\n"), kc_current_view); }
}
}
{ kc_printer(kc_t("\
\n } else\
\n"), kc_current_view); }
kc::unparse(r_rri, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_rewritedefs_default_c_enum: {
view_gen_rewritedefs_default_c_class& kc_current_view=static_cast<view_gen_rewritedefs_default_c_class&>(kc_current_view_base);
if ((this->rewriteruleinfo_1->prod_sel() == sel_Rewriteruleinfo) && (phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->patternrepresentation_1->prod_sel() == sel_Conspatternrepresentation) && ((phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->patternrepresentation_1)->patternrepresentation_1->prod_sel() == sel_Nilpatternrepresentation) && (phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->rewriteclause_1->prod_sel() == sel_RewriteClause)) {
const elem_patternrepresentation rep = (phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->patternrepresentation_1)->elem_patternrepresentation_1;
const patternrepresentation bindings = phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->patternrepresentation_2;
const term t = phylum_cast<const impl_rewriteclause_RewriteClause*>(phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->rewriteclause_1)->term_1;
const rewriterulesinfo r_rri = this->rewriterulesinfo_1;
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(rep->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(rep->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
{ kc_printer(kc_t(" { KC_TRACE_REWRITE_MATCH(kc_current_view, \""), kc_current_view); }
kc::unparse(rep->file, kc_printer, kc_current_view);
{ kc_printer(kc_t("\", "), kc_current_view); }
kc::unparse(rep->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(", this);\
\n"), kc_current_view); }
kc::unparse(bindings, kc_printer, view_rw_bindings);
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(t->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(t->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
if(g_options.rw_loop)
{
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t(" kc_result = "), kc_current_view); }
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t(" KC_TRACE_REWRITE_RESULT(kc_current_view,\""), kc_current_view); }
kc::unparse(t->file, kc_printer, kc_current_view);
{ kc_printer(kc_t("\","), kc_current_view); }
kc::unparse(t->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(",kc_result);\
\n return kc_result;\
\n"), kc_current_view); }
}
else
{
if(g_options.smart_pointer)
{
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t("_ptr kc_result = "), kc_current_view); }
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t(" KC_TRACE_REWRITE_RESULT(kc_current_view,\""), kc_current_view); }
kc::unparse(t->file, kc_printer, kc_current_view);
{ kc_printer(kc_t("\","), kc_current_view); }
kc::unparse(t->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(",kc_result);\
\n return (kc_result() == this ? this : kc_result->rewrite( kc_current_view_base ))->return_ptr();\
\n"), kc_current_view); }
}
else
{
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t(" kc_result = "), kc_current_view); }
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t(" KC_TRACE_REWRITE_RESULT(kc_current_view,\""), kc_current_view); }
kc::unparse(t->file, kc_printer, kc_current_view);
{ kc_printer(kc_t("\","), kc_current_view); }
kc::unparse(t->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(",kc_result);\
\n return (const_cast<const impl_"), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t("*>(kc_result) == this) ? this : kc_result->rewrite( kc_current_view_base );\
\n"), kc_current_view); }
}
}
{ kc_printer(kc_t("\
\n }\
\n"), kc_current_view); }
if (g_options.warn_drop_identical_patterns) {
rewriterulesinfo kc_selvar_0_1 = phylum_cast<rewriterulesinfo>(r_rri);
if ((kc_selvar_0_1->prod_sel() == sel_Consrewriterulesinfo)) {
{
rewriterulesinfo kc_fe_selvar_1 = kc_selvar_0_1;
while(
kc_fe_selvar_1->prod_sel() == sel_Consrewriterulesinfo
) {
rewriteruleinfo kc_selvar_1_1 = kc_fe_selvar_1->rewriteruleinfo_1;
{
{
{
const rewriteruleinfo rri = kc_selvar_1_1;
warn_drop_identical_pattern(rri);
}
}
}
kc_fe_selvar_1 = kc_fe_selvar_1->rewriterulesinfo_1;
}
}
} else
if ((kc_selvar_0_1->prod_sel() == sel_Nilrewriterulesinfo)) {
} else
kc_no_default_in_with( "", __LINE__, __FILE__ );
}
} else
if ((this->rewriteruleinfo_1->prod_sel() == sel_Rewriteruleinfo) && (phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->patternrepresentation_1->prod_sel() == sel_Nilpatternrepresentation) && (phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->rewriteclause_1->prod_sel() == sel_RewriteClause)) {
const patternrepresentation bindings = phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->patternrepresentation_2;
const term t = phylum_cast<const impl_rewriteclause_RewriteClause*>(phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->rewriteclause_1)->term_1;
assertionFailed("Completely empty rewrite pattern not possible.");
} else
if ((this->rewriteruleinfo_1->prod_sel() == sel_Rewriteruleinfo) && (phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->patternrepresentation_1->prod_sel() == sel_Conspatternrepresentation) && (phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->rewriteclause_1->prod_sel() == sel_RewriteClause)) {
const elem_patternrepresentation rep = (phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->patternrepresentation_1)->elem_patternrepresentation_1;
const patternrepresentation r_p = (phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->patternrepresentation_1)->patternrepresentation_1;
const patternrepresentation bindings = phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->patternrepresentation_2;
const term t = phylum_cast<const impl_rewriteclause_RewriteClause*>(phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(this->rewriteruleinfo_1)->rewriteclause_1)->term_1;
const rewriterulesinfo r_rri = this->rewriterulesinfo_1;
gl_bindings.clear();
kc::unparse(bindings, kc_printer, view_predicate_bindings);
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(rep->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(rep->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
{ kc_printer(kc_t(" if (("), kc_current_view); }
kc::unparse(r_p, kc_printer, view_rw_predicates);
{ kc_printer(kc_t(")) { KC_TRACE_REWRITE_MATCH(kc_current_view, \""), kc_current_view); }
kc::unparse(rep->file, kc_printer, kc_current_view);
{ kc_printer(kc_t("\", "), kc_current_view); }
kc::unparse(rep->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(", this);\
\n"), kc_current_view); }
kc::unparse(bindings, kc_printer, view_rw_bindings);
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(t->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(t->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
if(g_options.rw_loop)
{
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t(" kc_result = "), kc_current_view); }
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t(" KC_TRACE_REWRITE_RESULT(kc_current_view,\""), kc_current_view); }
kc::unparse(t->file, kc_printer, kc_current_view);
{ kc_printer(kc_t("\","), kc_current_view); }
kc::unparse(t->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(",kc_result);\
\n return kc_result;\
\n"), kc_current_view); }
}
else
{
if(g_options.smart_pointer)
{
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t("_ptr kc_result = "), kc_current_view); }
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t(" KC_TRACE_REWRITE_RESULT(kc_current_view,\""), kc_current_view); }
kc::unparse(t->file, kc_printer, kc_current_view);
{ kc_printer(kc_t("\","), kc_current_view); }
kc::unparse(t->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(",kc_result);\
\n return (kc_result() == this ? this : kc_result->rewrite( kc_current_view_base ))->return_ptr();\
\n"), kc_current_view); }
}
else
{
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t(" kc_result = "), kc_current_view); }
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t(" KC_TRACE_REWRITE_RESULT(kc_current_view,\""), kc_current_view); }
kc::unparse(t->file, kc_printer, kc_current_view);
{ kc_printer(kc_t("\","), kc_current_view); }
kc::unparse(t->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(",kc_result);\
\n return (const_cast<const impl_"), kc_current_view); }
kc::unparse(gl_phylum, kc_printer, kc_current_view);
{ kc_printer(kc_t("*>(kc_result) == this) ? this : kc_result->rewrite( kc_current_view_base );\
\n"), kc_current_view); }
}
}
{ kc_printer(kc_t("\
\n } else\
\n"), kc_current_view); }
kc::unparse(r_rri, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (rewriterulesinfo iterator_ = this; iterator_->rewriterulesinfo_1 != 0; iterator_ = iterator_->rewriterulesinfo_1)
iterator_->rewriteruleinfo_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_rewriterulesinfo::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_rewritedefs_other_c_enum: {
view_gen_rewritedefs_other_c_class& kc_current_view=static_cast<view_gen_rewritedefs_other_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("\vgoto kc_rewrite_default\r;\
\n"), kc_current_view); }
gl_rewrite_goto_used = true;
}
break;
}
case view_gen_rewritedefs_default_c_enum: {
view_gen_rewritedefs_default_c_class& kc_current_view=static_cast<view_gen_rewritedefs_default_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("break;"), kc_current_view); }
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_rewriteruleinfo_Rewriteruleinfo::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_withcasesinfo::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
if ((this->withcaseinfo_1->prod_sel() == sel_Withcaseinfo) && (phylum_cast<const impl_withcaseinfo_Withcaseinfo*>(this->withcaseinfo_1)->patternrepresentation_1->prod_sel() == sel_Conspatternrepresentation) && ((phylum_cast<const impl_withcaseinfo_Withcaseinfo*>(this->withcaseinfo_1)->patternrepresentation_1)->elem_patternrepresentation_1->prod_sel() == sel_PRUserPredicate) && (phylum_cast<const impl_elem_patternrepresentation_PRUserPredicate*>((phylum_cast<const impl_withcaseinfo_Withcaseinfo*>(this->withcaseinfo_1)->patternrepresentation_1)->elem_patternrepresentation_1)->Cexpression_1->prod_sel() == sel_NilCexpression)) {
const patternrepresentation bindings = phylum_cast<const impl_withcaseinfo_Withcaseinfo*>(this->withcaseinfo_1)->patternrepresentation_2;
const Ctext ct = phylum_cast<const impl_withcaseinfo_Withcaseinfo*>(this->withcaseinfo_1)->Ctext_1;
{ kc_printer(kc_t("{\
\n"), kc_current_view); }
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(ct->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(ct->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
kc::unparse(bindings, kc_printer, view_wc_bindings);
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(ct->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(ct->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
kc::unparse(ct, kc_printer, view_gen_initializephyla_c);
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t("}\
\n"), kc_current_view); }
} else
if ((this->withcaseinfo_1->prod_sel() == sel_Withcaseinfo) && (phylum_cast<const impl_withcaseinfo_Withcaseinfo*>(this->withcaseinfo_1)->patternrepresentation_1->prod_sel() == sel_Conspatternrepresentation) && ((phylum_cast<const impl_withcaseinfo_Withcaseinfo*>(this->withcaseinfo_1)->patternrepresentation_1)->elem_patternrepresentation_1->prod_sel() == sel_PRDefault)) {
const patternrepresentation bindings = phylum_cast<const impl_withcaseinfo_Withcaseinfo*>(this->withcaseinfo_1)->patternrepresentation_2;
const Ctext ct = phylum_cast<const impl_withcaseinfo_Withcaseinfo*>(this->withcaseinfo_1)->Ctext_1;
{ kc_printer(kc_t("{\
\n"), kc_current_view); }
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(ct->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(ct->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
kc::unparse(bindings, kc_printer, view_wc_bindings);
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(ct->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(ct->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
kc::unparse(ct, kc_printer, view_gen_initializephyla_c);
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t("}\
\n"), kc_current_view); }
} else
if ((this->withcaseinfo_1->prod_sel() == sel_Withcaseinfo) && (phylum_cast<const impl_withcaseinfo_Withcaseinfo*>(this->withcaseinfo_1)->patternrepresentation_1->prod_sel() == sel_Nilpatternrepresentation)) {
const patternrepresentation bindings = phylum_cast<const impl_withcaseinfo_Withcaseinfo*>(this->withcaseinfo_1)->patternrepresentation_2;
const Ctext ct = phylum_cast<const impl_withcaseinfo_Withcaseinfo*>(this->withcaseinfo_1)->Ctext_1;
{ kc_printer(kc_t("{\
\n"), kc_current_view); }
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(ct->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(ct->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
kc::unparse(bindings, kc_printer, view_wc_bindings);
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(ct->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(ct->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
kc::unparse(ct, kc_printer, view_gen_initializephyla_c);
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t("}\
\n"), kc_current_view); }
} else
if ((this->withcaseinfo_1->prod_sel() == sel_Withcaseinfo)) {
const patternrepresentation p = phylum_cast<const impl_withcaseinfo_Withcaseinfo*>(this->withcaseinfo_1)->patternrepresentation_1;
const patternrepresentation bindings = phylum_cast<const impl_withcaseinfo_Withcaseinfo*>(this->withcaseinfo_1)->patternrepresentation_2;
const Ctext ct = phylum_cast<const impl_withcaseinfo_Withcaseinfo*>(this->withcaseinfo_1)->Ctext_1;
const withcasesinfo r_rri = this->withcasesinfo_1;
gl_bindings.clear();
kc::unparse(bindings, kc_printer, view_predicate_bindings);
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(ct->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(ct->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
{ kc_printer(kc_t(" if (("), kc_current_view); }
kc::unparse(p, kc_printer, view_wc_predicates);
{ kc_printer(kc_t(")) {\
\n"), kc_current_view); }
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(ct->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(ct->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
kc::unparse(bindings, kc_printer, view_wc_bindings);
operatorstack.push( f_operatorofpatternrepresentation( p ) );
if(g_options.linedirec)
{
kc::unparse(pg_line, kc_printer, kc_current_view);
kc::unparse(ct->line, kc_printer, kc_current_view);
{ kc_printer(kc_t(" \""), kc_current_view); }
PRINT(g_options.dir_line.c_str());
kc::unparse(ct->file, kc_printer, view_filename);
{ kc_printer(kc_t("\"\n"), kc_current_view); }
}
kc::unparse(ct, kc_printer, view_gen_initializephyla_c);
operatorstack.pop();
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t(" } else\
\n"), kc_current_view); }
kc::unparse(r_rri, kc_printer, kc_current_view);
} else
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
withcaseinfo_1->unparse(kc_printer, kc_current_view );
withcasesinfo_1->do_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_withcasesinfo::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_withcases_and_default_enum: {
view_gen_withcases_and_default_class& kc_current_view=static_cast<view_gen_withcases_and_default_class&>(kc_current_view_base);
{
if (inforeachcontext.top())
{
{ kc_printer(kc_t("{/* EMPTY */ /*skip: no matching pattern in foreach patterns*/}\
\n"), kc_current_view); }
}
else if ( (strcmp( gl_return_type, "" ) == 0) ||
((gl_star_count == 0) &&
(! f_isphylum( gl_return_ID )) &&
(! f_is_known_ptr_type( gl_return_ID )) ) )
{
{ kc_printer(kc_t("kc_no_default_in_with( \""), kc_current_view); }
kc::unparse(gl_function, kc_printer, kc_current_view);
{ kc_printer(kc_t("\", __LINE__, __FILE__ );\
\n"), kc_current_view); }
}
else
{
{ kc_printer(kc_t("{ kc_no_default_in_with( \""), kc_current_view); }
kc::unparse(gl_function, kc_printer, kc_current_view);
{ kc_printer(kc_t("\", __LINE__, __FILE__ );\
\n return static_cast<"), kc_current_view); }
kc::unparse(gl_return_type, kc_printer, kc_current_view);
charruns star_string = Stars()->set(gl_star_count);
kc::unparse(star_string, kc_printer, kc_current_view);
{ kc_printer(kc_t(">(0); }\
\n"), kc_current_view); }
}
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_withcaseinfo_Withcaseinfo::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_rewriteviewsinfo::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_rewritedefs_c_enum: {
view_gen_rewritedefs_c_class& kc_current_view=static_cast<view_gen_rewritedefs_c_class&>(kc_current_view_base);
{
const rewriteviewinfo a_rvi = this->rewriteviewinfo_1;
const rewriteviewsinfo r_rvi = this->rewriteviewsinfo_1;
kc::unparse(r_rvi, kc_printer, kc_current_view);
kc::unparse(a_rvi, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (rewriteviewsinfo iterator_ = this; iterator_->rewriteviewsinfo_1 != 0; iterator_ = iterator_->rewriteviewsinfo_1)
iterator_->rewriteviewinfo_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_rewriteviewsinfo::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_rewritedefs_c_enum: {
view_gen_rewritedefs_c_class& kc_current_view=static_cast<view_gen_rewritedefs_c_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_rewriteviewinfo_Rewriteviewinfo::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_rewritedefs_other_c_enum: {
view_gen_rewritedefs_other_c_class& kc_current_view=static_cast<view_gen_rewritedefs_other_c_class&>(kc_current_view_base);
if ((this->rewriterulesinfo_1->prod_sel() == sel_Nilrewriterulesinfo)) {
} else
{
const ID v = this->ID_1;
{ kc_printer(kc_t(" case "), kc_current_view); }
kc::unparse(v, kc_printer, kc_current_view);
{ kc_printer(kc_t("_enum: {\
\n "), kc_current_view); }
kc::unparse(v, kc_printer, kc_current_view);
{ kc_printer(kc_t("_class& kc_current_view=static_cast<"), kc_current_view); }
kc::unparse(v, kc_printer, kc_current_view);
{ kc_printer(kc_t("_class&>(kc_current_view_base);\
\n"), kc_current_view); }
gl_view = v;
kc::unparse(gl_alternative, kc_printer, kc_current_view);
gl_view = 0;
{ kc_printer(kc_t(" }\
\n"), kc_current_view); }
}
break;
}
case view_gen_rewritedefs_default_c_enum: {
view_gen_rewritedefs_default_c_class& kc_current_view=static_cast<view_gen_rewritedefs_default_c_class&>(kc_current_view_base);
if ((this->rewriterulesinfo_1->prod_sel() == sel_Nilrewriterulesinfo)) {
if (gl_rewrite_goto_used)
{
{ kc_printer(kc_t(" kc_rewrite_default:\
\n"), kc_current_view); }
}
{ kc_printer(kc_t(" default:;\
\n"), kc_current_view); }
} else
{
const ID v = this->ID_1;
{ kc_printer(kc_t(" default:\
\n"), kc_current_view); }
if (gl_rewrite_goto_used)
{
{ kc_printer(kc_t(" kc_rewrite_default:\
\n"), kc_current_view); }
}
{ kc_printer(kc_t(" case "), kc_current_view); }
kc::unparse(v, kc_printer, kc_current_view);
{ kc_printer(kc_t("_enum: {\
\n "), kc_current_view); }
kc::unparse(v, kc_printer, kc_current_view);
{ kc_printer(kc_t("_class& kc_current_view=static_cast<"), kc_current_view); }
kc::unparse(v, kc_printer, kc_current_view);
{ kc_printer(kc_t("_class&>(kc_current_view_base);\
\n"), kc_current_view); }
gl_view = v;
kc::unparse(gl_alternative, kc_printer, kc_current_view);
gl_view = 0;
{ kc_printer(kc_t(" }\
\n"), kc_current_view); }
}
break;
}
case view_gen_rewritedefs_c_enum: {
view_gen_rewritedefs_c_class& kc_current_view=static_cast<view_gen_rewritedefs_c_class&>(kc_current_view_base);
if ((this->ID_1->prod_sel() == sel_Id) && (phylum_cast<const impl_ID_Id*>(this->ID_1)->uniqID_1->prod_sel() == sel_Str)) {
const casestring v = phylum_cast<const impl_uniqID_Str*>(phylum_cast<const impl_ID_Id*>(this->ID_1)->uniqID_1)->casestring_1;
const rewriterulesinfo rri = this->rewriterulesinfo_1;
gl_rewrite_rewriteinfo = rri;
if ( strcmp(v->name, "base_rview" )==0 )
{
kc::unparse(this, kc_printer, view_gen_rewritedefs_default_c);
}
else
{
kc::unparse(this, kc_printer, view_gen_rewritedefs_other_c);
}
gl_rewrite_rewriteinfo = 0;
} else
goto kc_unparsing_default;
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_unparseviewsinfo::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_unparsedefs_c_enum: {
view_gen_unparsedefs_c_class& kc_current_view=static_cast<view_gen_unparsedefs_c_class&>(kc_current_view_base);
{
const unparseviewinfo a_uvi = this->unparseviewinfo_1;
const unparseviewsinfo r_uvi = this->unparseviewsinfo_1;
kc::unparse(r_uvi, kc_printer, kc_current_view);
kc::unparse(a_uvi, kc_printer, kc_current_view);
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (unparseviewsinfo iterator_ = this; iterator_->unparseviewsinfo_1 != 0; iterator_ = iterator_->unparseviewsinfo_1)
iterator_->unparseviewinfo_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_unparseviewsinfo::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_unparsedefs_c_enum: {
view_gen_unparsedefs_c_class& kc_current_view=static_cast<view_gen_unparsedefs_c_class&>(kc_current_view_base);
{
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_unparseviewinfo_Unparseviewinfo::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
if ((this->unparsedeclsinfo_1->prod_sel() == sel_Nilunparsedeclsinfo)) {
} else
{
const ID v = this->ID_1;
const unparsedeclsinfo udi = this->unparsedeclsinfo_1;
{ kc_printer(kc_t(" case "), kc_current_view); }
kc::unparse(v, kc_printer, kc_current_view);
{ kc_printer(kc_t("_enum: {\
\n "), kc_current_view); }
kc::unparse(v, kc_printer, kc_current_view);
{ kc_printer(kc_t("_class& kc_current_view=static_cast<"), kc_current_view); }
kc::unparse(v, kc_printer, kc_current_view);
{ kc_printer(kc_t("_class&>(kc_current_view_base);\
\n"), kc_current_view); }
kc::unparse(udi, kc_printer, kc_current_view);
{ kc_printer(kc_t(" break;\
\n }\
\n"), kc_current_view); }
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
{
const ID v = this->ID_1;
const unparsedeclsinfo udi = this->unparsedeclsinfo_1;
kc::unparse(g_emptystring, kc_printer, view_printer_outputfileline);
{ kc_printer(kc_t(" default:\
\n"), kc_current_view); }
if (gl_unparse_goto_used)
{
{ kc_printer(kc_t(" kc_unparsing_default:\
\n"), kc_current_view); }
}
{ kc_printer(kc_t(" case "), kc_current_view); }
kc::unparse(v, kc_printer, kc_current_view);
{ kc_printer(kc_t("_enum: {\
\n uview kc_current_view=kc_current_view_base;\
\n"), kc_current_view); }
bool onlyDefault;
{
unparsedeclsinfo kc_selvar_0_1 = phylum_cast<unparsedeclsinfo>(udi);
if ((kc_selvar_0_1->prod_sel() == sel_Nilunparsedeclsinfo)) {
onlyDefault = true;
} else
{
onlyDefault = false;
}
}
view_gen_unparsedefs_default_c_class vgudcD(/* is list ? */ false, onlyDefault);
kc::unparse(udi, kc_printer, vgudcD);
{ kc_printer(kc_t(" break;\
\n }\
\n"), kc_current_view); }
}
break;
}
case view_gen_unparsedefs_c_enum: {
view_gen_unparsedefs_c_class& kc_current_view=static_cast<view_gen_unparsedefs_c_class&>(kc_current_view_base);
if ((this->ID_1->prod_sel() == sel_Id) && (phylum_cast<const impl_ID_Id*>(this->ID_1)->uniqID_1->prod_sel() == sel_Str)) {
const casestring v = phylum_cast<const impl_uniqID_Str*>(phylum_cast<const impl_ID_Id*>(this->ID_1)->uniqID_1)->casestring_1;
if ( strcmp(v->name, "base_uview" )==0 )
{
kc::unparse(this, kc_printer, view_gen_unparsedefs_default_c);
}
else
{
kc::unparse(this, kc_printer, view_gen_unparsedefs_other_c);
}
} else
goto kc_unparsing_default;
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_unparsedeclsinfo::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
if ((this->unparsedeclinfo_1->prod_sel() == sel_Unparsedeclinfo) && (phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>(this->unparsedeclinfo_1)->patternrepresentation_1->prod_sel() == sel_Conspatternrepresentation) && ((phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>(this->unparsedeclinfo_1)->patternrepresentation_1)->patternrepresentation_1->prod_sel() == sel_Nilpatternrepresentation)) {
const patternrepresentation p = phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>(this->unparsedeclinfo_1)->patternrepresentation_1;
const patternrepresentation bindings = phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>(this->unparsedeclinfo_1)->patternrepresentation_2;
const unparseclause uc = phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>(this->unparsedeclinfo_1)->unparseclause_1;
const unparsedeclsinfo r_udi = this->unparsedeclsinfo_1;
{ kc_printer(kc_t("{\n"), kc_current_view); }
kc::unparse(bindings, kc_printer, view_unp_bindings);
operatorstack.push( f_operatorofpatternrepresentation( p ) );
kc::unparse(uc, kc_printer, kc_current_view);
operatorstack.pop();
{ kc_printer(kc_t("}\
\n"), kc_current_view); }
if (g_options.warn_drop_identical_patterns) {
unparsedeclsinfo kc_selvar_0_1 = phylum_cast<unparsedeclsinfo>(r_udi);
if ((kc_selvar_0_1->prod_sel() == sel_Consunparsedeclsinfo)) {
{
unparsedeclsinfo kc_fe_selvar_1 = kc_selvar_0_1;
while(
kc_fe_selvar_1->prod_sel() == sel_Consunparsedeclsinfo
) {
unparsedeclinfo kc_selvar_1_1 = kc_fe_selvar_1->unparsedeclinfo_1;
{
{
{
const unparsedeclinfo udi = kc_selvar_1_1;
warn_drop_identical_pattern(udi);
}
}
}
kc_fe_selvar_1 = kc_fe_selvar_1->unparsedeclsinfo_1;
}
}
} else
if ((kc_selvar_0_1->prod_sel() == sel_Nilunparsedeclsinfo)) {
} else
kc_no_default_in_with( "", __LINE__, __FILE__ );
}
} else
if ((this->unparsedeclinfo_1->prod_sel() == sel_Unparsedeclinfo) && (phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>(this->unparsedeclinfo_1)->patternrepresentation_1->prod_sel() == sel_Conspatternrepresentation)) {
const patternrepresentation p = phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>(this->unparsedeclinfo_1)->patternrepresentation_1;
const patternrepresentation r_p = (phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>(this->unparsedeclinfo_1)->patternrepresentation_1)->patternrepresentation_1;
const patternrepresentation bindings = phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>(this->unparsedeclinfo_1)->patternrepresentation_2;
const unparseclause uc = phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>(this->unparsedeclinfo_1)->unparseclause_1;
const unparsedeclsinfo r_udi = this->unparsedeclsinfo_1;
gl_bindings.clear();
kc::unparse(bindings, kc_printer, view_predicate_bindings);
{ kc_printer(kc_t(" if (("), kc_current_view); }
kc::unparse(r_p, kc_printer, view_unp_predicates);
{ kc_printer(kc_t(")) {\
\n"), kc_current_view); }
kc::unparse(bindings, kc_printer, view_unp_bindings);
operatorstack.push( f_operatorofpatternrepresentation( p ) );
kc::unparse(uc, kc_printer, kc_current_view);
operatorstack.pop();
{ kc_printer(kc_t(" } else\
\n"), kc_current_view); }
kc::unparse(r_udi, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
if ((this->unparsedeclinfo_1->prod_sel() == sel_Unparsedeclinfo) && (phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>(this->unparsedeclinfo_1)->patternrepresentation_1->prod_sel() == sel_Conspatternrepresentation) && ((phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>(this->unparsedeclinfo_1)->patternrepresentation_1)->patternrepresentation_1->prod_sel() == sel_Nilpatternrepresentation)) {
const patternrepresentation p = phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>(this->unparsedeclinfo_1)->patternrepresentation_1;
const patternrepresentation bindings = phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>(this->unparsedeclinfo_1)->patternrepresentation_2;
const unparseclause uc = phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>(this->unparsedeclinfo_1)->unparseclause_1;
const unparsedeclsinfo r_udi = this->unparsedeclsinfo_1;
{ kc_printer(kc_t("{\n"), kc_current_view); }
kc::unparse(bindings, kc_printer, view_unp_bindings);
operatorstack.push( f_operatorofpatternrepresentation( p ) );
kc::unparse(uc, kc_printer, kc_current_view);
operatorstack.pop();
{ kc_printer(kc_t("}\
\n"), kc_current_view); }
if (g_options.warn_drop_identical_patterns) {
unparsedeclsinfo kc_selvar_0_1 = phylum_cast<unparsedeclsinfo>(r_udi);
if ((kc_selvar_0_1->prod_sel() == sel_Consunparsedeclsinfo)) {
{
unparsedeclsinfo kc_fe_selvar_1 = kc_selvar_0_1;
while(
kc_fe_selvar_1->prod_sel() == sel_Consunparsedeclsinfo
) {
unparsedeclinfo kc_selvar_1_1 = kc_fe_selvar_1->unparsedeclinfo_1;
{
{
{
const unparsedeclinfo udi = kc_selvar_1_1;
warn_drop_identical_pattern(udi);
}
}
}
kc_fe_selvar_1 = kc_fe_selvar_1->unparsedeclsinfo_1;
}
}
} else
if ((kc_selvar_0_1->prod_sel() == sel_Nilunparsedeclsinfo)) {
} else
kc_no_default_in_with( "", __LINE__, __FILE__ );
}
} else
if ((this->unparsedeclinfo_1->prod_sel() == sel_Unparsedeclinfo) && (phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>(this->unparsedeclinfo_1)->patternrepresentation_1->prod_sel() == sel_Conspatternrepresentation)) {
const patternrepresentation p = phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>(this->unparsedeclinfo_1)->patternrepresentation_1;
const patternrepresentation r_p = (phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>(this->unparsedeclinfo_1)->patternrepresentation_1)->patternrepresentation_1;
const patternrepresentation bindings = phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>(this->unparsedeclinfo_1)->patternrepresentation_2;
const unparseclause uc = phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>(this->unparsedeclinfo_1)->unparseclause_1;
const unparsedeclsinfo r_udi = this->unparsedeclsinfo_1;
gl_bindings.clear();
kc::unparse(bindings, kc_printer, view_predicate_bindings);
{ kc_printer(kc_t(" if (("), kc_current_view); }
kc::unparse(r_p, kc_printer, view_unp_predicates);
{ kc_printer(kc_t(")) {\
\n"), kc_current_view); }
kc::unparse(bindings, kc_printer, view_unp_bindings);
operatorstack.push( f_operatorofpatternrepresentation( p ) );
kc::unparse(uc, kc_printer, kc_current_view);
operatorstack.pop();
{ kc_printer(kc_t(" } else\
\n"), kc_current_view); }
kc::unparse(r_udi, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (unparsedeclsinfo iterator_ = this; iterator_->unparsedeclsinfo_1 != 0; iterator_ = iterator_->unparsedeclsinfo_1)
iterator_->unparsedeclinfo_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_unparsedeclsinfo::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_unparsedefs_other_c_enum: {
view_gen_unparsedefs_other_c_class& kc_current_view=static_cast<view_gen_unparsedefs_other_c_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("\vgoto kc_unparsing_default\r;\
\n"), kc_current_view); }
gl_unparse_goto_used = true;
}
break;
}
case view_gen_unparsedefs_default_c_enum: {
view_gen_unparsedefs_default_c_class& kc_current_view=static_cast<view_gen_unparsedefs_default_c_class&>(kc_current_view_base);
{
phylumdeclaration phydecl = f_lookupdecl( gl_phylum );
if ( phydecl == 0 )
{
v_report(NonFatal( FileLine( gl_phylum->file, gl_phylum->line ), Problem1S1ID( "internal error: could not find declaration of phylum:", gl_phylum )));
}
else
{
kc::unparse(phydecl, kc_printer, kc_current_view);
}
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_unparsedeclinfo_Unparsedeclinfo::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_ac_declaration_AcDeclaration::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ac_declaration_specifiers ds = this->ac_declaration_specifiers_1;
const ac_init_declarator_list idlo = this->ac_init_declarator_list_1;
kc::unparse(ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(idlo, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
}
break;
}
}
}
void
impl_ac_declaration_list::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ac_declaration h = this->ac_declaration_1;
const ac_declaration_list t = this->ac_declaration_list_1;
kc::unparse(t, kc_printer, kc_current_view);
kc::unparse(h, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_ac_declaration_list::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_ac_declaration_specifiers::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
if ((this->ac_declaration_specifiers_1->prod_sel() == sel_Nilac_declaration_specifiers)) {
const ac_declaration_specifier h = this->ac_declaration_specifier_1;
kc::unparse(h, kc_printer, kc_current_view);
} else
{
const ac_declaration_specifier h = this->ac_declaration_specifier_1;
const ac_declaration_specifiers t = this->ac_declaration_specifiers_1;
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(h, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_ac_declaration_specifiers::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_ac_declaration_specifier_AcDeclSpecTypeQual::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_ac_declaration_specifier_AcDeclSpecTypeSpec::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_ac_declaration_specifier_AcDeclSpecStorageSpec::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_ac_storage_class_specifier_AcVirtual::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_fnk_c_enum: {
view_gen_fnk_c_class& kc_current_view=static_cast<view_gen_fnk_c_class&>(kc_current_view_base);
{
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
{ kc_printer(kc_t("virtual"), kc_current_view); }
}
break;
}
}
}
void
impl_ac_storage_class_specifier_AcTypedef::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
{ kc_printer(kc_t("typedef"), kc_current_view); }
}
break;
}
}
}
void
impl_ac_storage_class_specifier_AcExtern::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
{ kc_printer(kc_t("extern"), kc_current_view); }
}
break;
}
}
}
void
impl_ac_storage_class_specifier_AcStatic::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_member_dcl_h_enum: {
view_gen_member_dcl_h_class& kc_current_view=static_cast<view_gen_member_dcl_h_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("static"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_ac_storage_class_specifier_AcRegister::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
{ kc_printer(kc_t("register"), kc_current_view); }
}
break;
}
}
}
void
impl_ac_storage_class_specifier_AcAuto::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
{ kc_printer(kc_t("auto"), kc_current_view); }
}
break;
}
}
}
void
impl_ac_type_specifier_AcTypeSpec::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ID i = this->ID_1;
kc::unparse(i, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_ac_type_qualifier_AcNoQualifier::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_ac_type_qualifier_AcUnsigned::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
{ kc_printer(kc_t("unsigned"), kc_current_view); }
}
break;
}
}
}
void
impl_ac_type_qualifier_AcVolatile::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
{ kc_printer(kc_t("volatile"), kc_current_view); }
}
break;
}
}
}
void
impl_ac_type_qualifier_AcConst::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
{ kc_printer(kc_t("const"), kc_current_view); }
}
break;
}
}
}
void
impl_ac_init_declarator_list::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
if ((this->ac_init_declarator_list_1->prod_sel() == sel_Nilac_init_declarator_list)) {
const ac_init_declarator h = this->ac_init_declarator_1;
kc::unparse(h, kc_printer, kc_current_view);
} else
{
const ac_init_declarator h = this->ac_init_declarator_1;
const ac_init_declarator_list t = this->ac_init_declarator_list_1;
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(h, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_ac_init_declarator_list::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_ac_init_declarator_AcInitDecl::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ac_declarator d = this->ac_declarator_1;
kc::unparse(d, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_ac_declarator_AcDeclarator::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_opt_const_enum: {
view_gen_opt_const_class& kc_current_view=static_cast<view_gen_opt_const_class&>(kc_current_view_base);
{
const ac_direct_declarator dd = this->ac_direct_declarator_1;
kc::unparse(dd, kc_printer, kc_current_view);
}
break;
}
case view_gen_fnkdecls_enum: {
view_gen_fnkdecls_class& kc_current_view=static_cast<view_gen_fnkdecls_class&>(kc_current_view_base);
{
const ac_pointer_option po = this->ac_pointer_option_1;
const ac_ref_option rr = this->ac_ref_option_1;
const ac_direct_declarator dd = this->ac_direct_declarator_1;
kc::unparse(po, kc_printer, kc_current_view);
kc::unparse(rr, kc_printer, kc_current_view);
kc::unparse(dd, kc_printer, kc_current_view);
}
break;
}
case view_gen_fnkargs_enum: {
view_gen_fnkargs_class& kc_current_view=static_cast<view_gen_fnkargs_class&>(kc_current_view_base);
{
const ac_direct_declarator dd = this->ac_direct_declarator_1;
kc::unparse(dd, kc_printer, kc_current_view);
}
break;
}
case view_gen_fn_pointer_name_enum: {
view_gen_fn_pointer_name_class& kc_current_view=static_cast<view_gen_fn_pointer_name_class&>(kc_current_view_base);
{
const ac_pointer_option po = this->ac_pointer_option_1;
const ac_ref_option rr = this->ac_ref_option_1;
const ac_direct_declarator dd = this->ac_direct_declarator_1;
kc::unparse(po, kc_printer, kc_current_view);
kc::unparse(rr, kc_printer, kc_current_view);
kc::unparse(dd, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ac_pointer_option po = this->ac_pointer_option_1;
const ac_ref_option rr = this->ac_ref_option_1;
const ac_direct_declarator dd = this->ac_direct_declarator_1;
kc::unparse(po, kc_printer, kc_current_view);
kc::unparse(rr, kc_printer, kc_current_view);
kc::unparse(dd, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_ac_direct_declarator_AcOperatorDeclId::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ac_operator_name id = this->ac_operator_name_1;
{ kc_printer(kc_t("operator "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_ac_direct_declarator_AcConvOperatorDecl::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_member_dcl_h_enum: {
view_gen_member_dcl_h_class& kc_current_view=static_cast<view_gen_member_dcl_h_class&>(kc_current_view_base);
{
const ID id = this->ID_2;
{ kc_printer(kc_t("operator "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
}
break;
}
case view_gen_fn_pointer_name_enum: {
view_gen_fn_pointer_name_class& kc_current_view=static_cast<view_gen_fn_pointer_name_class&>(kc_current_view_base);
{
const ID clid = this->ID_1;
const ID id = this->ID_2;
kc::unparse(clid, kc_printer, view_gen_fn_pointer_name);
{ kc_printer(kc_t("::operator "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
}
break;
}
case view_gen_fnk_c_enum: {
view_gen_fnk_c_class& kc_current_view=static_cast<view_gen_fnk_c_class&>(kc_current_view_base);
{
const ID clid = this->ID_1;
const ID id = this->ID_2;
kc::unparse(clid, kc_printer, view_gen_fn_pointer_name);
{ kc_printer(kc_t("::operator "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_ac_direct_declarator_AcMemberDecl::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_member_dcl_h_enum: {
view_gen_member_dcl_h_class& kc_current_view=static_cast<view_gen_member_dcl_h_class&>(kc_current_view_base);
{
const ID id = this->ID_2;
const ac_constant_expression_list idxs = this->ac_constant_expression_list_1;
kc::unparse(id, kc_printer, kc_current_view);
kc::unparse(idxs, kc_printer, kc_current_view);
}
break;
}
case view_gen_fn_pointer_name_enum: {
view_gen_fn_pointer_name_class& kc_current_view=static_cast<view_gen_fn_pointer_name_class&>(kc_current_view_base);
{
const ID clid = this->ID_1;
const ID id = this->ID_2;
const ac_constant_expression_list idxs = this->ac_constant_expression_list_1;
kc::unparse(clid, kc_printer, view_gen_fn_pointer_name);
{ kc_printer(kc_t("::"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
kc::unparse(idxs, kc_printer, kc_current_view);
}
break;
}
case view_gen_fnk_c_enum: {
view_gen_fnk_c_class& kc_current_view=static_cast<view_gen_fnk_c_class&>(kc_current_view_base);
{
const ID clid = this->ID_1;
const ID id = this->ID_2;
const ac_constant_expression_list idxs = this->ac_constant_expression_list_1;
kc::unparse(clid, kc_printer, view_gen_fn_pointer_name);
{ kc_printer(kc_t("::"), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
kc::unparse(idxs, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_ac_direct_declarator_AcQualifiedDeclProto::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_opt_const_enum: {
view_gen_opt_const_class& kc_current_view=static_cast<view_gen_opt_const_class&>(kc_current_view_base);
{
const ac_type_qualifier co = this->ac_type_qualifier_1;
kc::unparse(co, kc_printer, kc_current_view);
}
break;
}
case view_gen_member_dcl_h_enum: {
view_gen_member_dcl_h_class& kc_current_view=static_cast<view_gen_member_dcl_h_class&>(kc_current_view_base);
{
const ac_direct_declarator id = this->ac_direct_declarator_1;
const ac_parameter_type_list args = this->ac_parameter_type_list_1;
const ac_type_qualifier opt_const = this->ac_type_qualifier_1;
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(args, kc_printer, kc_current_view);
{ kc_printer(kc_t(")"), kc_current_view); }
kc::unparse(opt_const, kc_printer, kc_current_view);
{ kc_printer(kc_t(";\
\n"), kc_current_view); }
}
break;
}
case view_gen_fnkdecls_enum: {
view_gen_fnkdecls_class& kc_current_view=static_cast<view_gen_fnkdecls_class&>(kc_current_view_base);
if ((this->ac_class_qualifier_list_1->prod_sel() == sel_Nilac_class_qualifier_list)) {
const ac_direct_declarator dd = this->ac_direct_declarator_1;
kc::unparse(dd, kc_printer, kc_current_view);
{ kc_printer(kc_t("()"), kc_current_view); }
} else
{
}
break;
}
case view_gen_fnkargs_enum: {
view_gen_fnkargs_class& kc_current_view=static_cast<view_gen_fnkargs_class&>(kc_current_view_base);
{
const ac_direct_declarator dd = this->ac_direct_declarator_1;
kc::unparse(dd, kc_printer, kc_current_view);
}
break;
}
case view_gen_fn_pointer_name_enum: {
view_gen_fn_pointer_name_class& kc_current_view=static_cast<view_gen_fn_pointer_name_class&>(kc_current_view_base);
{
const ac_class_qualifier_list dd = this->ac_class_qualifier_list_1;
const ac_direct_declarator id = this->ac_direct_declarator_1;
kc::unparse(dd, kc_printer, kc_current_view);
kc::unparse(id, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ac_class_qualifier_list qq = this->ac_class_qualifier_list_1;
const ac_direct_declarator id = this->ac_direct_declarator_1;
const ac_parameter_type_list ptl = this->ac_parameter_type_list_1;
const ac_type_qualifier oc = this->ac_type_qualifier_1;
kc::unparse(qq, kc_printer, kc_current_view);
kc::unparse(id, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(ptl, kc_printer, kc_current_view);
{ kc_printer(kc_t(")"), kc_current_view); }
kc::unparse(oc, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_ac_direct_declarator_AcDirectDeclProto::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_opt_const_enum: {
view_gen_opt_const_class& kc_current_view=static_cast<view_gen_opt_const_class&>(kc_current_view_base);
{
}
break;
}
case view_gen_fnkdecls_enum: {
view_gen_fnkdecls_class& kc_current_view=static_cast<view_gen_fnkdecls_class&>(kc_current_view_base);
{
const ac_direct_declarator dd = this->ac_direct_declarator_1;
kc::unparse(dd, kc_printer, kc_current_view);
{ kc_printer(kc_t("()"), kc_current_view); }
}
break;
}
case view_gen_fnkargs_enum: {
view_gen_fnkargs_class& kc_current_view=static_cast<view_gen_fnkargs_class&>(kc_current_view_base);
{
const ac_direct_declarator dd = this->ac_direct_declarator_1;
kc::unparse(dd, kc_printer, kc_current_view);
}
break;
}
case view_gen_fn_pointer_name_enum: {
view_gen_fn_pointer_name_class& kc_current_view=static_cast<view_gen_fn_pointer_name_class&>(kc_current_view_base);
{
const ac_direct_declarator dd = this->ac_direct_declarator_1;
kc::unparse(dd, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ac_direct_declarator dd = this->ac_direct_declarator_1;
const ac_parameter_type_list ptl = this->ac_parameter_type_list_1;
kc::unparse(dd, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(ptl, kc_printer, kc_current_view);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
}
}
void
impl_ac_direct_declarator_AcDirectDeclArray::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_fnkdecls_enum: {
view_gen_fnkdecls_class& kc_current_view=static_cast<view_gen_fnkdecls_class&>(kc_current_view_base);
{
const ac_direct_declarator dd = this->ac_direct_declarator_1;
const ac_constant_expression_option ceo = this->ac_constant_expression_option_1;
kc::unparse(dd, kc_printer, kc_current_view);
{ kc_printer(kc_t("["), kc_current_view); }
kc::unparse(ceo, kc_printer, kc_current_view);
{ kc_printer(kc_t("]"), kc_current_view); }
}
break;
}
case view_gen_fnkargs_enum: {
view_gen_fnkargs_class& kc_current_view=static_cast<view_gen_fnkargs_class&>(kc_current_view_base);
{
const ac_direct_declarator dd = this->ac_direct_declarator_1;
kc::unparse(dd, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ac_direct_declarator dd = this->ac_direct_declarator_1;
const ac_constant_expression_option ceo = this->ac_constant_expression_option_1;
kc::unparse(dd, kc_printer, kc_current_view);
{ kc_printer(kc_t("["), kc_current_view); }
kc::unparse(ceo, kc_printer, kc_current_view);
{ kc_printer(kc_t("]"), kc_current_view); }
}
break;
}
}
}
void
impl_ac_direct_declarator_AcDirectDeclPack::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_fnkdecls_enum: {
view_gen_fnkdecls_class& kc_current_view=static_cast<view_gen_fnkdecls_class&>(kc_current_view_base);
{
const ac_declarator d = this->ac_declarator_1;
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(d, kc_printer, kc_current_view);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
case view_gen_fnkargs_enum: {
view_gen_fnkargs_class& kc_current_view=static_cast<view_gen_fnkargs_class&>(kc_current_view_base);
{
const ac_declarator d = this->ac_declarator_1;
kc::unparse(d, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ac_declarator d = this->ac_declarator_1;
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(d, kc_printer, kc_current_view);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
}
}
void
impl_ac_direct_declarator_AcDirectDeclId::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_fnkdecls_enum: {
view_gen_fnkdecls_class& kc_current_view=static_cast<view_gen_fnkdecls_class&>(kc_current_view_base);
{
const ID i = this->ID_1;
kc::unparse(i, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ID i = this->ID_1;
kc::unparse(i, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_ac_pointer_option_Yespointer::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ac_pointer p = this->ac_pointer_1;
kc::unparse(p, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_ac_pointer_option_Nopointer::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
}
break;
}
}
}
void
impl_ac_pointer_AcPointerCons::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
if ((this->ac_type_qualifier_list_1->prod_sel() == sel_Nilac_type_qualifier_list)) {
const ac_pointer p = this->ac_pointer_1;
{ kc_printer(kc_t("*"), kc_current_view); }
kc::unparse(p, kc_printer, kc_current_view);
} else
{
const ac_type_qualifier_list tql = this->ac_type_qualifier_list_1;
const ac_pointer p = this->ac_pointer_1;
{ kc_printer(kc_t("* "), kc_current_view); }
kc::unparse(tql, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(p, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_ac_pointer_AcPointerNil::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
if ((this->ac_type_qualifier_list_1->prod_sel() == sel_Nilac_type_qualifier_list)) {
{ kc_printer(kc_t("*"), kc_current_view); }
} else
{
const ac_type_qualifier_list tql = this->ac_type_qualifier_list_1;
{ kc_printer(kc_t("* "), kc_current_view); }
kc::unparse(tql, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
}
break;
}
}
}
void
impl_ac_ref_option_AcRef::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
{ kc_printer(kc_t("&"), kc_current_view); }
}
break;
}
}
}
void
impl_ac_ref_option_AcNoRef::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
}
break;
}
}
}
void
impl_ac_operator_name_AcOperatorName::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_ac_class_qualifier_help_list::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (ac_class_qualifier_help_list iterator_ = this; iterator_->ac_class_qualifier_help_list_1 != 0; iterator_ = iterator_->ac_class_qualifier_help_list_1)
iterator_->ac_direct_declarator_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_ac_class_qualifier_help_list::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_ac_class_qualifier_list::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ID head = this->ID_1;
const ac_class_qualifier_list tail = this->ac_class_qualifier_list_1;
kc::unparse(tail, kc_printer, kc_current_view);
kc::unparse(head, kc_printer, kc_current_view);
{ kc_printer(kc_t("::"), kc_current_view); }
}
break;
}
}
}
void
impl_ac_class_qualifier_list::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_ac_type_qualifier_list::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
if ((this->ac_type_qualifier_list_1->prod_sel() == sel_Nilac_type_qualifier_list)) {
const ac_type_qualifier h = this->ac_type_qualifier_1;
kc::unparse(h, kc_printer, kc_current_view);
} else
{
const ac_type_qualifier h = this->ac_type_qualifier_1;
const ac_type_qualifier_list t = this->ac_type_qualifier_list_1;
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(h, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_ac_type_qualifier_list::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_ac_parameter_type_list_AcParList3Dot::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_fnkdecls_enum: {
view_gen_fnkdecls_class& kc_current_view=static_cast<view_gen_fnkdecls_class&>(kc_current_view_base);
{
const ac_parameter_list pl = this->ac_parameter_list_1;
kc::unparse(pl, kc_printer, kc_current_view);
}
break;
}
case view_gen_fnkargs_enum: {
view_gen_fnkargs_class& kc_current_view=static_cast<view_gen_fnkargs_class&>(kc_current_view_base);
{
const ac_parameter_list pl = this->ac_parameter_list_1;
kc::unparse(pl, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ac_parameter_list pl = this->ac_parameter_list_1;
kc::unparse(pl, kc_printer, kc_current_view);
{ kc_printer(kc_t(" ..."), kc_current_view); }
}
break;
}
}
}
void
impl_ac_parameter_type_list_AcParList::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_fnkdecls_enum: {
view_gen_fnkdecls_class& kc_current_view=static_cast<view_gen_fnkdecls_class&>(kc_current_view_base);
if ((this->ac_parameter_list_1->prod_sel() == sel_Nilac_parameter_list)) {
} else
goto kc_unparsing_default;
break;
}
case view_gen_fnkargs_enum: {
view_gen_fnkargs_class& kc_current_view=static_cast<view_gen_fnkargs_class&>(kc_current_view_base);
if ((this->ac_parameter_list_1->prod_sel() == sel_Nilac_parameter_list)) {
} else
goto kc_unparsing_default;
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ac_parameter_list pl = this->ac_parameter_list_1;
kc::unparse(pl, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_ac_parameter_list::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_fnkdecls_enum: {
view_gen_fnkdecls_class& kc_current_view=static_cast<view_gen_fnkdecls_class&>(kc_current_view_base);
if ((this->ac_parameter_list_1->prod_sel() == sel_Nilac_parameter_list)) {
const ac_parameter_declaration h = this->ac_parameter_declaration_1;
kc::unparse(h, kc_printer, kc_current_view);
{ kc_printer(kc_t(";"), kc_current_view); }
} else
{
const ac_parameter_declaration h = this->ac_parameter_declaration_1;
const ac_parameter_list t = this->ac_parameter_list_1;
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t("\n"), kc_current_view); }
kc::unparse(h, kc_printer, kc_current_view);
{ kc_printer(kc_t(";"), kc_current_view); }
}
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
if ((this->ac_parameter_list_1->prod_sel() == sel_Nilac_parameter_list)) {
const ac_parameter_declaration h = this->ac_parameter_declaration_1;
kc::unparse(h, kc_printer, kc_current_view);
} else
{
const ac_parameter_declaration h = this->ac_parameter_declaration_1;
const ac_parameter_list t = this->ac_parameter_list_1;
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
kc::unparse(h, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_ac_parameter_list::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_ac_parameter_declaration_AcParDeclAbsdecl::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_member_dcl_h_enum: {
view_gen_member_dcl_h_class& kc_current_view=static_cast<view_gen_member_dcl_h_class&>(kc_current_view_base);
if ((this->ac_constant_expression_option_1->prod_sel() == sel_Noac_constant_expression)) {
const ac_declaration_specifiers ds = this->ac_declaration_specifiers_1;
const ac_abstract_declarator ad = this->ac_abstract_declarator_1;
kc::unparse(ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(ad, kc_printer, kc_current_view);
} else
if ((this->ac_constant_expression_option_1->prod_sel() == sel_Yesac_constant_expression)) {
const ac_declaration_specifiers ds = this->ac_declaration_specifiers_1;
const ac_abstract_declarator ad = this->ac_abstract_declarator_1;
const ac_constant_expression expr = phylum_cast<const impl_ac_constant_expression_option_Yesac_constant_expression*>(this->ac_constant_expression_option_1)->ac_constant_expression_1;
kc::unparse(ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(ad, kc_printer, kc_current_view);
{ kc_printer(kc_t("="), kc_current_view); }
kc::unparse(expr, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_fnkdecls_enum: {
view_gen_fnkdecls_class& kc_current_view=static_cast<view_gen_fnkdecls_class&>(kc_current_view_base);
if ((this->ac_constant_expression_option_1->prod_sel() == sel_Noac_constant_expression)) {
const ac_declaration_specifiers ds = this->ac_declaration_specifiers_1;
const ac_abstract_declarator ad = this->ac_abstract_declarator_1;
kc::unparse(ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(ad, kc_printer, kc_current_view);
} else
if ((this->ac_constant_expression_option_1->prod_sel() == sel_Yesac_constant_expression)) {
const ac_declaration_specifiers ds = this->ac_declaration_specifiers_1;
const ac_abstract_declarator ad = this->ac_abstract_declarator_1;
const ac_constant_expression expr = phylum_cast<const impl_ac_constant_expression_option_Yesac_constant_expression*>(this->ac_constant_expression_option_1)->ac_constant_expression_1;
kc::unparse(ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(ad, kc_printer, kc_current_view);
{ kc_printer(kc_t("="), kc_current_view); }
kc::unparse(expr, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_fnkargs_enum: {
view_gen_fnkargs_class& kc_current_view=static_cast<view_gen_fnkargs_class&>(kc_current_view_base);
{
const ac_abstract_declarator ad = this->ac_abstract_declarator_1;
kc::unparse(ad, kc_printer, kc_current_view);
}
break;
}
case view_gen_fnkdecls_c_enum: {
view_gen_fnkdecls_c_class& kc_current_view=static_cast<view_gen_fnkdecls_c_class&>(kc_current_view_base);
if ((this->ac_constant_expression_option_1->prod_sel() == sel_Noac_constant_expression)) {
const ac_declaration_specifiers ds = this->ac_declaration_specifiers_1;
const ac_abstract_declarator ad = this->ac_abstract_declarator_1;
kc::unparse(ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(ad, kc_printer, kc_current_view);
} else
if ((this->ac_constant_expression_option_1->prod_sel() == sel_Yesac_constant_expression)) {
const ac_declaration_specifiers ds = this->ac_declaration_specifiers_1;
const ac_abstract_declarator ad = this->ac_abstract_declarator_1;
const ac_constant_expression expr = phylum_cast<const impl_ac_constant_expression_option_Yesac_constant_expression*>(this->ac_constant_expression_option_1)->ac_constant_expression_1;
kc::unparse(ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(ad, kc_printer, kc_current_view);
{ kc_printer(kc_t("="), kc_current_view); }
kc::unparse(expr, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_fnk_h_enum: {
view_gen_fnk_h_class& kc_current_view=static_cast<view_gen_fnk_h_class&>(kc_current_view_base);
if ((this->ac_constant_expression_option_1->prod_sel() == sel_Noac_constant_expression)) {
const ac_declaration_specifiers ds = this->ac_declaration_specifiers_1;
const ac_abstract_declarator ad = this->ac_abstract_declarator_1;
kc::unparse(ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(ad, kc_printer, kc_current_view);
} else
if ((this->ac_constant_expression_option_1->prod_sel() == sel_Yesac_constant_expression)) {
const ac_declaration_specifiers ds = this->ac_declaration_specifiers_1;
const ac_abstract_declarator ad = this->ac_abstract_declarator_1;
const ac_constant_expression expr = phylum_cast<const impl_ac_constant_expression_option_Yesac_constant_expression*>(this->ac_constant_expression_option_1)->ac_constant_expression_1;
kc::unparse(ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(ad, kc_printer, kc_current_view);
{ kc_printer(kc_t("="), kc_current_view); }
kc::unparse(expr, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ac_declaration_specifiers ds = this->ac_declaration_specifiers_1;
const ac_abstract_declarator ad = this->ac_abstract_declarator_1;
kc::unparse(ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(ad, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_ac_parameter_declaration_AcParDeclDecl::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_member_dcl_h_enum: {
view_gen_member_dcl_h_class& kc_current_view=static_cast<view_gen_member_dcl_h_class&>(kc_current_view_base);
if ((this->ac_constant_expression_option_1->prod_sel() == sel_Noac_constant_expression)) {
const ac_declaration_specifiers ds = this->ac_declaration_specifiers_1;
const ac_declarator d = this->ac_declarator_1;
kc::unparse(ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(d, kc_printer, kc_current_view);
} else
if ((this->ac_constant_expression_option_1->prod_sel() == sel_Yesac_constant_expression)) {
const ac_declaration_specifiers ds = this->ac_declaration_specifiers_1;
const ac_declarator d = this->ac_declarator_1;
const ac_constant_expression expr = phylum_cast<const impl_ac_constant_expression_option_Yesac_constant_expression*>(this->ac_constant_expression_option_1)->ac_constant_expression_1;
kc::unparse(ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(d, kc_printer, kc_current_view);
{ kc_printer(kc_t("="), kc_current_view); }
kc::unparse(expr, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_fnkdecls_enum: {
view_gen_fnkdecls_class& kc_current_view=static_cast<view_gen_fnkdecls_class&>(kc_current_view_base);
if ((this->ac_constant_expression_option_1->prod_sel() == sel_Noac_constant_expression)) {
const ac_declaration_specifiers ds = this->ac_declaration_specifiers_1;
const ac_declarator d = this->ac_declarator_1;
kc::unparse(ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(d, kc_printer, kc_current_view);
} else
if ((this->ac_constant_expression_option_1->prod_sel() == sel_Yesac_constant_expression)) {
const ac_declaration_specifiers ds = this->ac_declaration_specifiers_1;
const ac_declarator d = this->ac_declarator_1;
const ac_constant_expression expr = phylum_cast<const impl_ac_constant_expression_option_Yesac_constant_expression*>(this->ac_constant_expression_option_1)->ac_constant_expression_1;
kc::unparse(ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(d, kc_printer, kc_current_view);
{ kc_printer(kc_t("="), kc_current_view); }
kc::unparse(expr, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_fnkargs_enum: {
view_gen_fnkargs_class& kc_current_view=static_cast<view_gen_fnkargs_class&>(kc_current_view_base);
{
const ac_declarator d = this->ac_declarator_1;
kc::unparse(d, kc_printer, kc_current_view);
}
break;
}
case view_gen_fnkdecls_c_enum: {
view_gen_fnkdecls_c_class& kc_current_view=static_cast<view_gen_fnkdecls_c_class&>(kc_current_view_base);
if ((this->ac_constant_expression_option_1->prod_sel() == sel_Noac_constant_expression)) {
const ac_declaration_specifiers ds = this->ac_declaration_specifiers_1;
const ac_declarator d = this->ac_declarator_1;
kc::unparse(ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(d, kc_printer, kc_current_view);
} else
if ((this->ac_constant_expression_option_1->prod_sel() == sel_Yesac_constant_expression)) {
const ac_declaration_specifiers ds = this->ac_declaration_specifiers_1;
const ac_declarator d = this->ac_declarator_1;
const ac_constant_expression expr = phylum_cast<const impl_ac_constant_expression_option_Yesac_constant_expression*>(this->ac_constant_expression_option_1)->ac_constant_expression_1;
kc::unparse(ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(d, kc_printer, kc_current_view);
{ kc_printer(kc_t("="), kc_current_view); }
kc::unparse(expr, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
case view_gen_fnk_h_enum: {
view_gen_fnk_h_class& kc_current_view=static_cast<view_gen_fnk_h_class&>(kc_current_view_base);
if ((this->ac_constant_expression_option_1->prod_sel() == sel_Noac_constant_expression)) {
const ac_declaration_specifiers ds = this->ac_declaration_specifiers_1;
const ac_declarator d = this->ac_declarator_1;
kc::unparse(ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(d, kc_printer, kc_current_view);
} else
if ((this->ac_constant_expression_option_1->prod_sel() == sel_Yesac_constant_expression)) {
const ac_declaration_specifiers ds = this->ac_declaration_specifiers_1;
const ac_declarator d = this->ac_declarator_1;
const ac_constant_expression expr = phylum_cast<const impl_ac_constant_expression_option_Yesac_constant_expression*>(this->ac_constant_expression_option_1)->ac_constant_expression_1;
kc::unparse(ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(d, kc_printer, kc_current_view);
{ kc_printer(kc_t("="), kc_current_view); }
kc::unparse(expr, kc_printer, kc_current_view);
} else
goto kc_unparsing_default;
break;
}
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ac_declaration_specifiers ds = this->ac_declaration_specifiers_1;
const ac_declarator d = this->ac_declarator_1;
kc::unparse(ds, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(d, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_ac_identifier_list::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
if ((this->ac_identifier_list_1->prod_sel() == sel_Nilac_identifier_list)) {
const ID h = this->ID_1;
kc::unparse(h, kc_printer, kc_current_view);
} else
{
const ID h = this->ID_1;
const ac_identifier_list t = this->ac_identifier_list_1;
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t(", "), kc_current_view); }
kc::unparse(h, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_ac_identifier_list::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
kc_unparsing_default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_ac_abstract_declarator_AcAbsdeclDirdecl::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_fnkdecls_enum: {
view_gen_fnkdecls_class& kc_current_view=static_cast<view_gen_fnkdecls_class&>(kc_current_view_base);
{
const ac_pointer_option p = this->ac_pointer_option_1;
const ac_direct_abstract_declarator dad = this->ac_direct_abstract_declarator_1;
kc::unparse(p, kc_printer, kc_current_view);
kc::unparse(dad, kc_printer, kc_current_view);
}
break;
}
case view_gen_fnkargs_enum: {
view_gen_fnkargs_class& kc_current_view=static_cast<view_gen_fnkargs_class&>(kc_current_view_base);
{
const ac_direct_abstract_declarator dad = this->ac_direct_abstract_declarator_1;
kc::unparse(dad, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ac_pointer_option po = this->ac_pointer_option_1;
const ac_direct_abstract_declarator dad = this->ac_direct_abstract_declarator_1;
kc::unparse(po, kc_printer, kc_current_view);
kc::unparse(dad, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_ac_abstract_declarator_AcAbsdeclPointer::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_fnkdecls_enum: {
view_gen_fnkdecls_class& kc_current_view=static_cast<view_gen_fnkdecls_class&>(kc_current_view_base);
{
const ac_pointer p = this->ac_pointer_1;
kc::unparse(p, kc_printer, kc_current_view);
{ kc_printer(kc_t(" kc_arg_missing"), kc_current_view); }
}
break;
}
case view_gen_fnkargs_enum: {
view_gen_fnkargs_class& kc_current_view=static_cast<view_gen_fnkargs_class&>(kc_current_view_base);
{
{ kc_printer(kc_t("kc_arg_missing"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ac_pointer p = this->ac_pointer_1;
kc::unparse(p, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_ac_direct_abstract_declarator_option_Yesac_direct_abstract_declarator::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ac_direct_abstract_declarator dad = this->ac_direct_abstract_declarator_1;
kc::unparse(dad, kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_ac_direct_abstract_declarator_option_Noac_direct_abstract_declarator::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_ac_direct_abstract_declarator_AcDirAbsdeclFn::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_fnkargs_enum: {
view_gen_fnkargs_class& kc_current_view=static_cast<view_gen_fnkargs_class&>(kc_current_view_base);
{
const ac_direct_abstract_declarator_option dado = this->ac_direct_abstract_declarator_option_1;
kc::unparse(dado, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ac_direct_abstract_declarator_option dado = this->ac_direct_abstract_declarator_option_1;
const ac_parameter_type_list ptl = this->ac_parameter_type_list_1;
kc::unparse(dado, kc_printer, kc_current_view);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(ptl, kc_printer, kc_current_view);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
}
}
void
impl_ac_direct_abstract_declarator_AcDirAbsdeclArray::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_fnkargs_enum: {
view_gen_fnkargs_class& kc_current_view=static_cast<view_gen_fnkargs_class&>(kc_current_view_base);
{
const ac_direct_abstract_declarator_option dado = this->ac_direct_abstract_declarator_option_1;
kc::unparse(dado, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ac_direct_abstract_declarator_option dado = this->ac_direct_abstract_declarator_option_1;
const ac_constant_expression_option ceo = this->ac_constant_expression_option_1;
kc::unparse(dado, kc_printer, kc_current_view);
{ kc_printer(kc_t("["), kc_current_view); }
kc::unparse(ceo, kc_printer, kc_current_view);
{ kc_printer(kc_t("]"), kc_current_view); }
}
break;
}
}
}
void
impl_ac_direct_abstract_declarator_AcDirAbsdeclPack::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_fnkargs_enum: {
view_gen_fnkargs_class& kc_current_view=static_cast<view_gen_fnkargs_class&>(kc_current_view_base);
{
const ac_abstract_declarator ad = this->ac_abstract_declarator_1;
kc::unparse(ad, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ac_abstract_declarator ad = this->ac_abstract_declarator_1;
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(ad, kc_printer, kc_current_view);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
}
}
void
impl_ac_constant_expression_option_Noac_constant_expression::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_ac_constant_expression_option_Yesac_constant_expression::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_ac_constant_expression_AcConstExpr::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const Cexpression ce = this->Cexpression_1;
kc::unparse(ce, kc_printer, view_gen_initializephyla_c);
}
break;
}
}
}
void
impl_ac_constant_expression_list::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
const ac_constant_expression head = this->ac_constant_expression_1;
const ac_constant_expression_list tail = this->ac_constant_expression_list_1;
kc::unparse(tail, kc_printer, kc_current_view);
{ kc_printer(kc_t("["), kc_current_view); }
kc::unparse(head, kc_printer, kc_current_view);
{ kc_printer(kc_t("]"), kc_current_view); }
}
break;
}
}
}
void
impl_ac_constant_expression_list::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_ac_opt_base_init_list_AcYesBaseInit::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_fnk_c_enum: {
view_gen_fnk_c_class& kc_current_view=static_cast<view_gen_fnk_c_class&>(kc_current_view_base);
{
const ac_base_init_list base_init_list = this->ac_base_init_list_1;
{ kc_printer(kc_t(":"), kc_current_view); }
kc::unparse(base_init_list, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
}
break;
}
}
}
void
impl_ac_opt_base_init_list_AcNoBaseInit::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{
}
break;
}
}
}
void
impl_ac_base_init_list::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
case view_gen_fnk_c_enum: {
view_gen_fnk_c_class& kc_current_view=static_cast<view_gen_fnk_c_class&>(kc_current_view_base);
if ((this->ac_base_init_list_1->prod_sel() == sel_Nilac_base_init_list)) {
const ac_base_init head = this->ac_base_init_1;
kc::unparse(head, kc_printer, kc_current_view);
} else
{
const ac_base_init head = this->ac_base_init_1;
const ac_base_init_list tail = this->ac_base_init_list_1;
kc::unparse(tail, kc_printer, kc_current_view);
{ kc_printer(kc_t(","), kc_current_view); }
kc::unparse(head, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (ac_base_init_list iterator_ = this; iterator_->ac_base_init_list_1 != 0; iterator_ = iterator_->ac_base_init_list_1)
iterator_->ac_base_init_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_ac_base_init_list::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_ac_base_init_AcBaseInit::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_gen_fnk_c_enum: {
view_gen_fnk_c_class& kc_current_view=static_cast<view_gen_fnk_c_class&>(kc_current_view_base);
{
const ID id = this->ID_1;
const ac_constant_expression expr = this->ac_constant_expression_1;
kc::unparse(id, kc_printer, view_gen_fn_pointer_name);
{ kc_printer(kc_t("("), kc_current_view); }
kc::unparse(expr, kc_printer, kc_current_view);
{ kc_printer(kc_t(")"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_baseclass_declarations::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (baseclass_declarations iterator_ = this; iterator_->baseclass_declarations_1 != 0; iterator_ = iterator_->baseclass_declarations_1)
iterator_->baseclass_decl_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_baseclass_declarations::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_baseclass_decl_BaseClassDecl::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_baseclass_list::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
if ((this->baseclass_list_1->prod_sel() == sel_Nilbaseclass_list)) {
const ID head = this->ID_1;
{ kc_printer(kc_t("public "), kc_current_view); }
kc::unparse(head, kc_printer, view_gen_fn_pointer_name);
} else
{
const ID head = this->ID_1;
const baseclass_list tail = this->baseclass_list_1;
kc::unparse(tail, kc_printer, kc_current_view);
{ kc_printer(kc_t(", public "), kc_current_view); }
kc::unparse(head, kc_printer, view_gen_fn_pointer_name);
}
break;
}
}
}
void
impl_baseclass_list::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_error_Warning::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const fileline fl = this->fileline_1;
const problem e = this->problem_1;
kc::unparse(g_progname, kc_printer, kc_current_view);
{ kc_printer(kc_t(": warning"), kc_current_view); }
kc::unparse(fl, kc_printer, kc_current_view);
{ kc_printer(kc_t(": "), kc_current_view); }
kc::unparse(e, kc_printer, kc_current_view);
{ kc_printer(kc_t("\n"), kc_current_view); }
}
break;
}
case view_error_format_enum: {
view_error_format_class& kc_current_view=static_cast<view_error_format_class&>(kc_current_view_base);
{
const fileline fl = this->fileline_1;
const problem e = this->problem_1;
kc_current_view.program(g_progname->name);
kc_current_view.severity("warning");
kc::unparse(fl, kc_printer, kc_current_view);
PRINT(kc_current_view.get_msg());
kc::unparse(e, kc_printer, view_error);
{ kc_printer(kc_t("\n"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_error_NonFatal::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const fileline fl = this->fileline_1;
const problem e = this->problem_1;
gp_no_fatal_problems=false;
kc::unparse(g_progname, kc_printer, kc_current_view);
{ kc_printer(kc_t(": error"), kc_current_view); }
kc::unparse(fl, kc_printer, kc_current_view);
{ kc_printer(kc_t(": "), kc_current_view); }
kc::unparse(e, kc_printer, kc_current_view);
{ kc_printer(kc_t("\n"), kc_current_view); }
}
break;
}
case view_error_format_enum: {
view_error_format_class& kc_current_view=static_cast<view_error_format_class&>(kc_current_view_base);
{
const fileline fl = this->fileline_1;
const problem e = this->problem_1;
gp_no_fatal_problems=false;
kc_current_view.program(g_progname->name);
kc_current_view.severity("error");
kc::unparse(fl, kc_printer, kc_current_view);
PRINT(kc_current_view.get_msg());
kc::unparse(e, kc_printer, view_error);
{ kc_printer(kc_t("\n"), kc_current_view); }
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_error_Fatal::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const fileline fl = this->fileline_1;
const problem e = this->problem_1;
gp_no_fatal_problems=false;
kc::unparse(g_progname, kc_printer, kc_current_view);
{ kc_printer(kc_t(": fatal error"), kc_current_view); }
kc::unparse(fl, kc_printer, kc_current_view);
{ kc_printer(kc_t(": "), kc_current_view); }
kc::unparse(e, kc_printer, kc_current_view);
{ kc_printer(kc_t("\n"), kc_current_view); }
leave( 1 );
}
break;
}
case view_error_format_enum: {
view_error_format_class& kc_current_view=static_cast<view_error_format_class&>(kc_current_view_base);
{
const fileline fl = this->fileline_1;
const problem e = this->problem_1;
gp_no_fatal_problems=false;
kc_current_view.program(g_progname->name);
kc_current_view.severity("fatal error");
kc::unparse(fl, kc_printer, kc_current_view);
PRINT(kc_current_view.get_msg());
kc::unparse(e, kc_printer, view_error);
{ kc_printer(kc_t("\n"), kc_current_view); }
leave( 1 );
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_problem_Problem6::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const casestring s1 = this->casestring_1;
const casestring s2 = this->casestring_2;
const casestring s3 = this->casestring_3;
const casestring s4 = this->casestring_4;
const casestring s5 = this->casestring_5;
const casestring s6 = this->casestring_6;
kc::unparse(s1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s2, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s3, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s4, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s5, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s6, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_problem_Problem5::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const casestring s1 = this->casestring_1;
const casestring s2 = this->casestring_2;
const casestring s3 = this->casestring_3;
const casestring s4 = this->casestring_4;
const casestring s5 = this->casestring_5;
kc::unparse(s1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s2, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s3, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s4, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s5, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_problem_Problem4::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const casestring s1 = this->casestring_1;
const casestring s2 = this->casestring_2;
const casestring s3 = this->casestring_3;
const casestring s4 = this->casestring_4;
kc::unparse(s1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s2, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s3, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s4, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_problem_Problem3int1::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const casestring s1 = this->casestring_1;
const casestring s2 = this->casestring_2;
const casestring s3 = this->casestring_3;
const integer i1 = this->integer_1;
const casestring s4 = this->casestring_4;
kc::unparse(s1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s2, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s3, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(i1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s4, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_problem_Problem3::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const casestring s1 = this->casestring_1;
const casestring s2 = this->casestring_2;
const casestring s3 = this->casestring_3;
kc::unparse(s1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s2, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s3, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_problem_Problem2::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const casestring s1 = this->casestring_1;
const casestring s2 = this->casestring_2;
kc::unparse(s1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s2, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_problem_Problem1storageoption1ID::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const casestring s1 = this->casestring_1;
const storageoption so = this->storageoption_1;
const casestring s2 = this->casestring_2;
const ID id = this->ID_1;
kc::unparse(s1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(so, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s2, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_problem_Problem1INT1ID1ID::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const casestring s1 = this->casestring_1;
const INT i1 = this->INT_1;
const casestring s2 = this->casestring_2;
const ID id1 = this->ID_1;
const casestring s3 = this->casestring_3;
const ID id2 = this->ID_2;
kc::unparse(s1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(i1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s2, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(id1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s3, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(id2, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_problem_Problem1ID1ID1ID::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const casestring s1 = this->casestring_1;
const ID id1 = this->ID_1;
const casestring s2 = this->casestring_2;
const ID id2 = this->ID_2;
const casestring s3 = this->casestring_3;
const ID id3 = this->ID_3;
kc::unparse(s1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(id1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s2, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(id2, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s3, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(id3, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_problem_Problem1INT1ID::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const casestring s1 = this->casestring_1;
const INT i1 = this->INT_1;
const casestring s2 = this->casestring_2;
const ID id1 = this->ID_1;
kc::unparse(s1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(i1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s2, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(id1, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_problem_Problem1int1::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const casestring s1 = this->casestring_1;
const integer i1 = this->integer_1;
const casestring s2 = this->casestring_2;
kc::unparse(s1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(i1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s2, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_problem_Problem1INT::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const casestring s1 = this->casestring_1;
const INT i1 = this->INT_1;
kc::unparse(s1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(i1, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_problem_Problem1t1ID::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const casestring s1 = this->casestring_1;
const IDtype t = this->IDtype_1;
const casestring s2 = this->casestring_2;
const ID id = this->ID_1;
kc::unparse(s1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(t, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s2, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_problem_Problem1ID1ID::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const casestring s1 = this->casestring_1;
const ID id1 = this->ID_1;
const casestring s2 = this->casestring_2;
const ID id2 = this->ID_2;
kc::unparse(s1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(id1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(s2, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(id2, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_problem_Problem1we::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const casestring s1 = this->casestring_1;
const withexpression we1 = this->withexpression_1;
kc::unparse(s1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(we1, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_problem_Problem1tID::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const casestring s1 = this->casestring_1;
const ID id = this->ID_1;
kc::unparse(s1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(id, kc_printer, view_error_tID);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_problem_Problem1ID::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const casestring s1 = this->casestring_1;
const ID id = this->ID_1;
kc::unparse(s1, kc_printer, kc_current_view);
{ kc_printer(kc_t(" "), kc_current_view); }
kc::unparse(id, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_problem_Problem1::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
case view_error_enum: {
view_error_class& kc_current_view=static_cast<view_error_class&>(kc_current_view_base);
{
const casestring s1 = this->casestring_1;
kc::unparse(s1, kc_printer, kc_current_view);
}
break;
}
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_addedphylumdeclarations::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (addedphylumdeclarations iterator_ = this; iterator_->addedphylumdeclarations_1 != 0; iterator_ = iterator_->addedphylumdeclarations_1)
iterator_->addedphylumdeclaration_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_addedphylumdeclarations::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_addedphylumdeclaration_AddedPhylumdeclaration::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_countedphylumdeclarations::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (countedphylumdeclarations iterator_ = this; iterator_->countedphylumdeclarations_1 != 0; iterator_ = iterator_->countedphylumdeclarations_1)
iterator_->countedphylumdeclaration_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_countedphylumdeclarations::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_countedphylumdeclaration_CountedPhylumdeclaration::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
void
impl_charruns_Stars::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
if ((KC_TRACE_PROVIDED((this->number>0), "gutil.k", 369, this))) {
{ kc_printer(kc_t("*"), kc_current_view); }
this->number--;
kc::unparse(this, kc_printer, kc_current_view);
} else
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_charruns_QuotedNewlines::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
if ((KC_TRACE_PROVIDED((this->number>0), "gutil.k", 368, this))) {
{ kc_printer(kc_t("\\\n\\n"), kc_current_view); }
this->number--;
kc::unparse(this, kc_printer, kc_current_view);
} else
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_charruns_Newlines::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
if ((KC_TRACE_PROVIDED((this->number>0), "gutil.k", 367, this))) {
{ kc_printer(kc_t("\n"), kc_current_view); }
this->number--;
kc::unparse(this, kc_printer, kc_current_view);
} else
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_bindingidmarks::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
if(is_nil())
nil_do_unparse(kc_printer, kc_current_view_base);
else
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
for (bindingidmarks iterator_ = this; iterator_->bindingidmarks_1 != 0; iterator_ = iterator_->bindingidmarks_1)
iterator_->bindingidmark_1->unparse(kc_printer, kc_current_view);
}
break;
}
}
}
void
impl_bindingidmarks::nil_do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
}
break;
}
}
}
void
impl_bindingidmark_BindingIdMark::do_unparse(printer_functor kc_printer, uview kc_current_view_base)
{
switch(kc_current_view_base) {
default:
case base_uview_enum: {
uview kc_current_view=kc_current_view_base;
{ /* Alternative( *, args ) -> [view_gen_unparsedefs_default_c: */
default_unparse(kc_printer, kc_current_view );
}
break;
}
}
}
} // namespace kc