AST_Attribute * be_generator::create_attribute (bool ro, AST_Type *ft, UTL_ScopedName *n, bool is_local, bool is_abstract) { be_attribute *retval = 0; ACE_NEW_RETURN (retval, be_attribute (ro, ft, n, is_local, is_abstract), 0); return retval; }
int be_visitor_xplicit_pre_proc::visit_attribute (be_attribute *node) { be_type *ft = be_type::narrow_from_decl (node->field_type ()); this->ref_type_ = true; if (ft->accept (this) != 0) { ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("be_visitor_xplicit_pre_proc::") ACE_TEXT ("visit_attribute - code generation ") ACE_TEXT ("for attribute type failed\n")), -1); } this->ref_type_ = false; AST_Type *attr_type = AST_Type::narrow_from_decl (this->type_holder_); UTL_ScopedName sn (node->local_name (), 0); be_attribute *added_attr = 0; ACE_NEW_RETURN (added_attr, be_attribute (node->readonly (), attr_type, &sn, false, false), -1); idl_global->scopes ().top ()->add_to_scope (added_attr); return 0; }