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

MultipleArrayReference Class Reference

#include <multiplearrayreference.h>

Inheritance diagram for MultipleArrayReference:

Inheritance graph
[legend]
Collaboration diagram for MultipleArrayReference:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 MultipleArrayReference (SrcPosition *position, ArrayReference *arrayReference, Expression *expression)
 MultipleArrayReference (const MultipleArrayReference &multipleArrayReference)
virtual ~MultipleArrayReference ()
ArrayReferencegetArrayReference ()
ExpressiongetExpression ()
virtual Astoperator= (const Ast &ast)
virtual bool operator== (const Ast &ast) const
virtual VisitorReturnvisit (Visitor &visitor)
virtual Astclone () const

Private Attributes

ArrayReferencearrayReference
Expressionexpression

Constructor & Destructor Documentation

MultipleArrayReference::MultipleArrayReference SrcPosition position,
ArrayReference arrayReference,
Expression expression
[inline]
 

Definition at line 13 of file multiplearrayreference.h.

Referenced by clone().

00014                                 : ArrayReference(position), Ast(position), arrayReference(arrayReference), expression(expression) {}

MultipleArrayReference::MultipleArrayReference const MultipleArrayReference &  multipleArrayReference  )  [inline]
 

Definition at line 16 of file multiplearrayreference.h.

References Ast::position.

00016                                                                                              : ArrayReference(multipleArrayReference.position), Ast(position) {
00017                         *(this) = multipleArrayReference;
00018                 }

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

Definition at line 20 of file multiplearrayreference.h.

00020                                                   {
00021                         delete this->arrayReference;
00022                         delete this->expression;
00023                 }


Member Function Documentation

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

Implements Ast.

Definition at line 40 of file multiplearrayreference.h.

References Ast::clone(), and MultipleArrayReference().

00040                                            {
00041                         return *(new MultipleArrayReference(new SrcPosition(*(this->position)),
00042                                          this->arrayReference ? dynamic_cast<ArrayReference*>(&(this->arrayReference->clone())) : 0,
00043                                          this->expression ? dynamic_cast<Expression*>(&(this->expression->clone())) : 0));
00044                 }

ArrayReference* MultipleArrayReference::getArrayReference  )  [inline]
 

Definition at line 25 of file multiplearrayreference.h.

Referenced by TypeCheckerVisitor::visitMultipleArrayReference().

00025                                                     {
00026                         return this->arrayReference;
00027                 }

Expression* MultipleArrayReference::getExpression  )  [inline]
 

Definition at line 29 of file multiplearrayreference.h.

Referenced by TypeCheckerVisitor::visitMultipleArrayReference().

00029                                             {
00030                         return this->expression;
00031                 }

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

Reimplemented from ArrayReference.

Definition at line 5 of file multiplearrayreference.cpp.

References arrayReference, Ast::clone(), expression, and ArrayReference::operator=().

00005                                                        {
00006         const MultipleArrayReference& multipleArrayReference = dynamic_cast<const MultipleArrayReference&>(ast);
00007 
00008         ArrayReference::operator=(ast);
00009         this->arrayReference = multipleArrayReference.arrayReference ? dynamic_cast<ArrayReference*>(&(multipleArrayReference.arrayReference->clone())) : 0;
00010         this->expression = multipleArrayReference.expression ? dynamic_cast<Expression*>(&(multipleArrayReference.expression->clone())) : 0;
00011 
00012         return *(this);
00013 }

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

Reimplemented from ArrayReference.

Definition at line 15 of file multiplearrayreference.cpp.

References arrayReference, expression, and ArrayReference::operator==().

00015                                                               {
00016         bool result = false;
00017         const MultipleArrayReference& multipleArrayReference = dynamic_cast<const MultipleArrayReference&>(ast);
00018 
00019         if (typeid(ast) != typeid(MultipleArrayReference))
00020                 return false;
00021 
00022         if (this->arrayReference && this->expression)
00023                 result = (*(this->arrayReference) == *(multipleArrayReference.arrayReference) &&
00024                                    *(this->expression) == *(multipleArrayReference.expression));
00025 
00026         return result && ArrayReference::operator==(ast);
00027 }

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

Implements Ast.

Definition at line 36 of file multiplearrayreference.h.

References Visitor::visitMultipleArrayReference().

00036                                                                {
00037                         return visitor.visitMultipleArrayReference(this);
00038                 }


Member Data Documentation

ArrayReference* MultipleArrayReference::arrayReference [private]
 

Definition at line 9 of file multiplearrayreference.h.

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

Expression* MultipleArrayReference::expression [private]
 

Definition at line 10 of file multiplearrayreference.h.

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


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