TAO_PSDL_Member Class Reference

**************************************************************** More...

#include <PSDL_Node.h>

Inheritance diagram for TAO_PSDL_Member:

Inheritance graph
[legend]
Collaboration diagram for TAO_PSDL_Member:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TAO_PSDL_Member (TAO_PSDL_Node *type_spec, TAO_PSDL_Node *declarators)
 ****************************************************************

virtual ~TAO_PSDL_Member (void)
TAO_PSDL_Nodetype_spec (void) const
 Get the value.

TAO_PSDL_Nodedeclarators (void) const
int accept (TAO_PSDL_Node_Visitor *visitor)
 = The Node methods.


Private Attributes

TAO_PSDL_Nodetype_spec_
 The values.

TAO_PSDL_Nodedeclarators_

Detailed Description

****************************************************************

Definition at line 1742 of file PSDL_Node.h.


Constructor & Destructor Documentation

TAO_PSDL_Member::TAO_PSDL_Member TAO_PSDL_Node type_spec,
TAO_PSDL_Node declarators
 

****************************************************************

Definition at line 2676 of file PSDL_Node.cpp.

References TAO_PSDL_Scope::add_member_decl(), TAO_PSDL_Scope::check_name_in_scope(), TAO_PSDL_Node::psdl_scope(), TAO_PSDL_Node::psdl_scope_visitor(), and TAO_PSDL_Scope_Visitor::visit_member().

02678   : type_spec_ (type_spec),
02679     declarators_ (declarators)
02680 {
02681   this->psdl_scope_visitor ()->visit_member (this);
02682 
02683   if (this->predefined_type_)
02684     {
02685       // This is a predefined type. So, no need to check. But, reset the
02686       // value to the default value.
02687       this->predefined_type_ = 0;
02688     }
02689   else
02690     {
02691       // This is a user-defined type. So, check if it has already been
02692       // defined.
02693       this->psdl_scope ()->check_name_in_scope (this->identifiers_[0],
02694                                                 this->psdl_scope ());
02695     }
02696 
02697   this->psdl_scope ()->add_member_decl (this->identifiers_[1],
02698                                         this->identifiers_[0]);
02699 
02700   // We dont these values of the identifiers anymore as they have been
02701   // added to the corresponding AST. So, set count to 'zero' again.
02702   this->count_ = 0;
02703 }

TAO_PSDL_Member::~TAO_PSDL_Member void   )  [virtual]
 

Definition at line 2705 of file PSDL_Node.cpp.

02706 {
02707   delete this->type_spec_;
02708   delete this->declarators_;
02709 }


Member Function Documentation

int TAO_PSDL_Member::accept TAO_PSDL_Node_Visitor visitor  )  [virtual]
 

= The Node methods.

Implements TAO_PSDL_Node.

Definition at line 2726 of file PSDL_Node.cpp.

References TAO_PSDL_Node_Visitor::visit_member().

02727 {
02728   return visitor->visit_member  (this);
02729 }

TAO_PSDL_Node * TAO_PSDL_Member::declarators void   )  const
 

Definition at line 2719 of file PSDL_Node.cpp.

Referenced by TAO_PSDL_Scope_Visitor::visit_member(), TAO_PSDL_Node_Visitor::visit_member(), and Dump_Visitor::visit_member().

02720 {
02721   return this->declarators_;
02722 }

TAO_PSDL_Node * TAO_PSDL_Member::type_spec void   )  const
 

Get the value.

Definition at line 2713 of file PSDL_Node.cpp.

Referenced by TAO_PSDL_Scope_Visitor::visit_member(), TAO_PSDL_Node_Visitor::visit_member(), and Dump_Visitor::visit_member().

02714 {
02715   return this->type_spec_;
02716 }


Member Data Documentation

TAO_PSDL_Node* TAO_PSDL_Member::declarators_ [private]
 

Definition at line 1761 of file PSDL_Node.h.

TAO_PSDL_Node* TAO_PSDL_Member::type_spec_ [private]
 

The values.

Definition at line 1760 of file PSDL_Node.h.


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 14:09:20 2006 for TAO_PSS by doxygen 1.3.6