Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

FieldReference Class Reference

#include <fieldreference.h>

Inheritance diagram for FieldReference:

Inheritance graph
[legend]
Collaboration diagram for FieldReference:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 FieldReference (SrcPosition *position, Identifier *msgId, Identifier *fieldId)
 FieldReference (const FieldReference &fieldReference)
virtual ~FieldReference ()
IdentifiergetMsgId ()
IdentifiergetFieldId ()
virtual Astoperator= (const Ast &ast)
virtual bool operator== (const Ast &ast) const
virtual VisitorReturnvisit (Visitor &visitor)
virtual Astclone () const

Private Attributes

IdentifiermsgId
IdentifierfieldId

Constructor & Destructor Documentation

FieldReference::FieldReference SrcPosition position,
Identifier msgId,
Identifier fieldId
[inline]
 

Definition at line 15 of file fieldreference.h.

Referenced by clone().

00016                                 : Expression(position), LeftSide(position), Ast(position), msgId(msgId), fieldId(fieldId) {}

FieldReference::FieldReference const FieldReference &  fieldReference  )  [inline]
 

Definition at line 18 of file fieldreference.h.

References Ast::position.

00018                                                                      : Expression(fieldReference.position), LeftSide(fieldReference.position), Ast(position) {
00019                         (*this) = fieldReference;
00020                 }

virtual FieldReference::~FieldReference  )  [inline, virtual]
 

Definition at line 22 of file fieldreference.h.

00022                                           {
00023                         delete this->msgId;
00024                         delete this->fieldId;
00025                 }


Member Function Documentation

virtual Ast& FieldReference::clone  )  const [inline, virtual]
 

Implements Ast.

Definition at line 43 of file fieldreference.h.

References Identifier::clone(), and FieldReference().

00043                                            {
00044                         return *(new FieldReference(new SrcPosition(*(this->position)),
00045                                                         this->msgId ? dynamic_cast<Identifier*>(&(this->msgId->clone())): 0,
00046                                                         this->fieldId ? dynamic_cast<Identifier*>(&(this->fieldId->clone())): 0));
00047                 }

Identifier* FieldReference::getFieldId  )  [inline]
 

Definition at line 31 of file fieldreference.h.

Referenced by TypeCheckerVisitor::visitFieldReference().

00031                                          {
00032                         return this->fieldId;
00033                 }

Identifier* FieldReference::getMsgId  )  [inline]
 

Definition at line 27 of file fieldreference.h.

Referenced by TypeCheckerVisitor::visitFieldReference().

00027                                        {
00028                         return this->msgId;
00029                 }

Ast & FieldReference::operator= const Ast ast  )  [virtual]
 

Reimplemented from Expression.

Definition at line 3 of file fieldreference.cpp.

References Identifier::clone(), fieldId, msgId, and Expression::operator=().

00003                                                {
00004         const FieldReference& fieldReference = dynamic_cast<const FieldReference&>(ast);
00005 
00006         Expression::operator=(ast);
00007 
00008         this->msgId = fieldReference.msgId ? dynamic_cast<Identifier*>(&(fieldReference.msgId->clone())) : 0;
00009         this->fieldId = fieldReference.fieldId ? dynamic_cast<Identifier*>(&(fieldReference.fieldId->clone())): 0;
00010 
00011         return (*this);
00012 }

bool FieldReference::operator== const Ast ast  )  const [virtual]
 

Reimplemented from Expression.

Definition at line 14 of file fieldreference.cpp.

References fieldId, msgId, and Expression::operator==().

00014                                                       {
00015         const FieldReference& fieldReference = dynamic_cast<const FieldReference&>(ast);
00016 
00017         bool result = false;
00018         if(this->msgId && this->fieldId) {
00019                 result = (*(this->msgId) == *(fieldReference.msgId) &&
00020                                          *(this->fieldId) == *(fieldReference.fieldId));
00021         }
00022 
00023         return result && Expression::operator==(ast);
00024 }

virtual VisitorReturn* FieldReference::visit Visitor visitor  )  [inline, virtual]
 

Implements Ast.

Definition at line 39 of file fieldreference.h.

References Visitor::visitFieldReference().

00039                                                                {
00040                         return visitor.visitFieldReference(this);
00041                 }


Member Data Documentation

Identifier* FieldReference::fieldId [private]
 

Definition at line 12 of file fieldreference.h.

Referenced by operator=(), and operator==().

Identifier* FieldReference::msgId [private]
 

Definition at line 11 of file fieldreference.h.

Referenced by operator=(), and operator==().


The documentation for this class was generated from the following files:
Generated on Mon Dec 1 17:39:02 2003 for Protomake by doxygen1.3