Esempio n. 1
0
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;
}
Esempio n. 2
0
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;
}