// // $Id$ // // ============================================================================ // // = LIBRARY // TAO IDL // // = FILENAME // module.cpp // // = DESCRIPTION // Generic visitor generating code for Module // // = AUTHOR // Aniruddha Gokhale // // ============================================================================ ACE_RCSID (be_visitor_module, module, "$Id$") // ****************************************************** // Generic Module visitor // ****************************************************** be_visitor_module::be_visitor_module (be_visitor_context *ctx) : be_visitor_scope (ctx) { } be_visitor_module::~be_visitor_module (void) { } int be_visitor_module::visit_module (be_module *node) { if (node->nmembers () == 0) { idl_global->err ()->error1 (UTL_Error::EIDL_EMPTY_MODULE, node); } if (this->visit_scope (node) == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::visit_module - " "codegen for scope failed\n"), -1); } return 0; } // All common visit methods for module visitor. int be_visitor_module::visit_constant (be_constant *node) { // Instantiate a visitor context with a copy of our context. This info // will be modified based on what type of node we are visiting. be_visitor_context ctx (*this->ctx_); ctx.node (node); int status = 0; switch (this->ctx_->state ()) { case TAO_CodeGen::TAO_ROOT_CH: { be_visitor_constant_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CS: { be_visitor_constant_cs visitor (&ctx); status = node->accept (&visitor); break; } default: return 0; // nothing to be done } if (status == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_constant - " "failed to accept visitor\n"), -1); } return 0; } int be_visitor_module::visit_enum (be_enum *node) { // Instantiate a visitor context with a copy of our context. This info // will be modified based on what type of node we are visiting. be_visitor_context ctx (*this->ctx_); ctx.node (node); int status = 0; switch (this->ctx_->state ()) { case TAO_CodeGen::TAO_ROOT_CH: { be_visitor_enum_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CS: { be_visitor_enum_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { be_visitor_enum_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { be_visitor_enum_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { be_visitor_enum_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { be_visitor_enum_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } default: return 0; // nothing to be done } if (status == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_enum - " "failed to accept visitor\n"), -1); } return 0; } int be_visitor_module::visit_exception (be_exception *node) { // Instantiate a visitor context with a copy of our context. This info // will be modified based on what type of node we are visiting. be_visitor_context ctx (*this->ctx_); ctx.node (node); int status = 0; switch (this->ctx_->state ()) { case TAO_CodeGen::TAO_ROOT_CH: { be_visitor_exception_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CI: { be_visitor_exception_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CS: { be_visitor_exception_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { be_visitor_exception_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { be_visitor_exception_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { be_visitor_exception_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { be_visitor_exception_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } default: return 0; // nothing to be done } if (status == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_exception - " "failed to accept visitor\n"), -1); } return 0; } int be_visitor_module::visit_interface (be_interface *node) { be_visitor_context ctx (*this->ctx_); ctx.node (node); int status = 1; switch (this->ctx_->state ()) { case TAO_CodeGen::TAO_ROOT_CH: // This is the only context state involved in strategies. ctx.state (TAO_CodeGen::TAO_INTERFACE_CH); break; case TAO_CodeGen::TAO_ROOT_CI: { be_visitor_interface_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CS: { be_visitor_interface_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SH: { be_visitor_interface_sh visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_IH: { be_visitor_interface_ih visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SI: { be_visitor_interface_si visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SS: { be_visitor_interface_ss visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_IS: { be_visitor_interface_is visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { be_visitor_interface_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { be_visitor_interface_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { be_visitor_interface_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { be_visitor_interface_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } default: { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_interface - " "Bad context state\n"), -1); } } if (status == 0) { return 0; } else if (status == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_interface - " "failed to accept visitor\n"), -1); } // Change the state depending on the kind of node strategy ctx.state (node->next_state (ctx.state ())); be_visitor *visitor = tao_cg->make_visitor (&ctx); if (!visitor) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_interface - " "NUL visitor\n"), -1); } if (node->accept (visitor) == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_interface - " "failed to accept visitor\n"), -1); } delete visitor; visitor = 0; // Do additional code generation is necessary. // Note, this call is delegated to the strategy connected to // the node. if (node->has_extra_code_generation (ctx.state ())) { // Change the state depending on the kind of node strategy. ctx.state (node->next_state (ctx.state (), 1)); visitor = tao_cg->make_visitor (&ctx); if (!visitor) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_interface - " "NUL visitor\n"), -1); } if (node->accept (visitor) == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_interface - " "failed to accept visitor\n"), -1); } delete visitor; visitor = 0; } ctx.state (TAO_CodeGen::TAO_ROOT_CH); return 0; } int be_visitor_module::visit_interface_fwd (be_interface_fwd *node) { // Instantiate a visitor context with a copy of our context. This info // will be modified based on what type of node we are visiting. be_visitor_context ctx (*this->ctx_); ctx.node (node); int status = 0; switch (this->ctx_->state ()) { case TAO_CodeGen::TAO_ROOT_CH: { be_visitor_interface_fwd_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { be_visitor_interface_fwd_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { be_visitor_interface_fwd_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } default: return 0; // nothing to be done } if (status == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_interface_fwd - " "failed to accept visitor\n"), -1); } return 0; } int be_visitor_module::visit_valuetype (be_valuetype *node) { // Instantiate a visitor context with a copy of our context. This info // will be modified based on what type of node we are visiting be_visitor_context ctx (*this->ctx_); ctx.node (node); int status = 0; switch (this->ctx_->state ()) { case TAO_CodeGen::TAO_ROOT_CH: { be_visitor_valuetype_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CI: { be_visitor_valuetype_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CS: { be_visitor_valuetype_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { be_visitor_valuetype_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { be_visitor_valuetype_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { be_visitor_valuetype_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { be_visitor_valuetype_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SH: { be_visitor_valuetype_sh visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SI: { be_visitor_valuetype_si visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SS: { be_visitor_valuetype_ss visitor (&ctx); status = node->accept (&visitor); break; } default: return 0; // nothing to do. } if (status == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_valuetype - " "failed to accept visitor\n"), -1); } return 0; } int be_visitor_module::visit_valuetype_fwd (be_valuetype_fwd *node) { // Instantiate a visitor context with a copy of our context. This info // will be modified based on what type of node we are visiting. be_visitor_context ctx (*this->ctx_); ctx.node (node); int status = 0; switch (this->ctx_->state ()) { case TAO_CodeGen::TAO_ROOT_CH: { be_visitor_valuetype_fwd_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { be_visitor_valuetype_fwd_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { be_visitor_valuetype_fwd_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } default: return 0; // nothing to be done } if (status == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_valuetype_fwd - " "failed to accept visitor\n"), -1); } return 0; } int be_visitor_module::visit_eventtype (be_eventtype *node) { // Instantiate a visitor context with a copy of our context. This info // will be modified based on what type of node we are visiting be_visitor_context ctx (*this->ctx_); ctx.node (node); int status = 0; switch (this->ctx_->state ()) { case TAO_CodeGen::TAO_ROOT_CH: { be_visitor_eventtype_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CI: { be_visitor_eventtype_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CS: { be_visitor_eventtype_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { be_visitor_eventtype_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { be_visitor_eventtype_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { be_visitor_eventtype_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { be_visitor_eventtype_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SH: { be_visitor_eventtype_sh visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SI: { be_visitor_eventtype_si visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SS: { be_visitor_eventtype_ss visitor (&ctx); status = node->accept (&visitor); break; } default: return 0; // nothing to do. } if (status == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_eventtype - " "failed to accept visitor\n"), -1); } return 0; } int be_visitor_module::visit_eventtype_fwd (be_eventtype_fwd *node) { // Instantiate a visitor context with a copy of our context. This info // will be modified based on what type of node we are visiting. be_visitor_context ctx (*this->ctx_); ctx.node (node); int status = 0; switch (this->ctx_->state ()) { case TAO_CodeGen::TAO_ROOT_CH: { be_visitor_eventtype_fwd_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { be_visitor_eventtype_fwd_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { be_visitor_eventtype_fwd_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } default: return 0; // nothing to be done } if (status == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_eventtype_fwd - " "failed to accept visitor\n"), -1); } return 0; } int be_visitor_module::visit_component (be_component *node) { // Instantiate a visitor context with a copy of our context. This info // will be modified based on what type of node we are visiting be_visitor_context ctx (*this->ctx_); ctx.node (node); int status = 0; switch (this->ctx_->state ()) { case TAO_CodeGen::TAO_ROOT_CH: { be_visitor_component_ch visitor (&ctx); // So we can pick up the abstract ops helpers. ctx.state (TAO_CodeGen::TAO_INTERFACE_CH); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CI: { be_visitor_component_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CS: { be_visitor_component_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { be_visitor_component_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { be_visitor_component_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { be_visitor_component_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { be_visitor_component_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SH: { be_visitor_component_sh visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SI: { be_visitor_component_si visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_SS: { be_visitor_component_ss visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_IH: { be_visitor_component_ih visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_IS: { be_visitor_component_is visitor (&ctx); status = node->accept (&visitor); break; } default: { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_component - " "Bad context state\n"), -1); } } if (status == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_component - " "failed to accept visitor\n"), -1); } return 0; } int be_visitor_module::visit_component_fwd (be_component_fwd *node) { // Instantiate a visitor context with a copy of our context. This info // will be modified based on what type of node we are visiting. be_visitor_context ctx (*this->ctx_); ctx.node (node); int status = 0; switch (this->ctx_->state ()) { case TAO_CodeGen::TAO_ROOT_CH: { be_visitor_component_fwd_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { be_visitor_component_fwd_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } default: return 0; // nothing to be done } if (status == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_component_fwd - " "failed to accept visitor\n"), -1); } return 0; } int be_visitor_module::visit_home (be_home *node) { // Instantiate a visitor context with a copy of our context. This info // will be modified based on what type of node we are visiting. be_visitor_context ctx (*this->ctx_); ctx.node (node); int status = 0; switch (this->ctx_->state ()) { case TAO_CodeGen::TAO_ROOT_CH: { be_visitor_home_ch visitor (&ctx); status = node->accept (&visitor); break; } default: return 0; // nothing to be done } if (status == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_home - " "failed to accept visitor\n"), -1); } return 0; } int be_visitor_module::visit_structure (be_structure *node) { // Instantiate a visitor context with a copy of our context. This info // will be modified based on what type of node we are visiting. be_visitor_context ctx (*this->ctx_); ctx.node (node); int status = 0; switch (this->ctx_->state ()) { case TAO_CodeGen::TAO_ROOT_CH: { be_visitor_structure_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CI: { be_visitor_structure_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CS: { be_visitor_structure_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { be_visitor_structure_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { be_visitor_structure_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { be_visitor_structure_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { be_visitor_structure_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } default: return 0; // nothing to be done } if (status == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_structure - " "failed to accept visitor\n"), -1); } return 0; } int be_visitor_module::visit_structure_fwd (be_structure_fwd *node) { // Instantiate a visitor context with a copy of our context. This info // will be modified based on what type of node we are visiting. be_visitor_context ctx (*this->ctx_); ctx.node (node); int status = 0; switch (this->ctx_->state ()) { case TAO_CodeGen::TAO_ROOT_CH: { be_visitor_structure_fwd_ch visitor (&ctx); status = node->accept (&visitor); break; } default: return 0; // nothing to be done } if (status == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_structure_fwd - " "failed to accept visitor\n"), -1); } return 0; } int be_visitor_module::visit_union (be_union *node) { // Instantiate a visitor context with a copy of our context. This info // will be modified based on what type of node we are visiting. be_visitor_context ctx (*this->ctx_); ctx.node (node); int status = 0; switch (this->ctx_->state ()) { case TAO_CodeGen::TAO_ROOT_CH: { be_visitor_union_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CI: { be_visitor_union_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CS: { be_visitor_union_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { be_visitor_union_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { be_visitor_union_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { be_visitor_union_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { be_visitor_union_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } default: return 0; // nothing to be done } if (status == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_union - " "failed to accept visitor\n"), -1); } return 0; } int be_visitor_module::visit_union_fwd (be_union_fwd *node) { // Instantiate a visitor context with a copy of our context. This info // will be modified based on what type of node we are visiting. be_visitor_context ctx (*this->ctx_); ctx.node (node); int status = 0; switch (this->ctx_->state ()) { case TAO_CodeGen::TAO_ROOT_CH: { be_visitor_union_fwd_ch visitor (&ctx); status = node->accept (&visitor); break; } default: return 0; // nothing to be done } if (status == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_union_fwd - " "failed to accept visitor\n"), -1); } return 0; } int be_visitor_module::visit_typedef (be_typedef *node) { // Instantiate a visitor context with a copy of our context. This info // will be modified based on what type of node we are visiting. be_visitor_context ctx (*this->ctx_); ctx.node (node); int status = 0; switch (this->ctx_->state ()) { case TAO_CodeGen::TAO_ROOT_CH: { be_visitor_typedef_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CI: { be_visitor_typedef_ci visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CS: { be_visitor_typedef_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: { be_visitor_typedef_any_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: { be_visitor_typedef_any_op_cs visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: { be_visitor_typedef_cdr_op_ch visitor (&ctx); status = node->accept (&visitor); break; } case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: { be_visitor_typedef_cdr_op_cs visitor (&ctx); status = node->accept (&visitor); break; } default: return 0; // nothing to be done } if (status == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_module::" "visit_typedef - " "failed to accept visitor\n"), -1); } return 0; }