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

SimpleArrayReference Class Reference

#include <simplearrayreference.h>

Inheritance diagram for SimpleArrayReference:

Inheritance graph
[legend]
Collaboration diagram for SimpleArrayReference:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SimpleArrayReference (SrcPosition *position, Identifier *identifier, Expression *expression)
 SimpleArrayReference (const SimpleArrayReference &simpleArrayReference)
virtual ~SimpleArrayReference ()
IdentifiergetIdentifier ()
ExpressiongetExpression ()
virtual Astoperator= (const Ast &ast)
virtual bool operator== (const Ast &ast) const
virtual VisitorReturnvisit (Visitor &visitor)
virtual Astclone () const

Private Attributes

Identifieridentifier
Expressionexpression

Constructor & Destructor Documentation

SimpleArrayReference::SimpleArrayReference SrcPosition position,
Identifier identifier,
Expression expression
[inline]
 

Definition at line 14 of file simplearrayreference.h.

Referenced by clone().

00015                         : ArrayReference(position), Ast(position), identifier(identifier), expression(expression) {}

SimpleArrayReference::SimpleArrayReference const SimpleArrayReference &  simpleArrayReference  )  [inline]
 

Definition at line 17 of file simplearrayreference.h.

References Ast::position.

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

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

Definition at line 21 of file simplearrayreference.h.

00021                                                 {
00022                         delete this->identifier;
00023                         delete this->expression;
00024                 }


Member Function Documentation

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

Implements Ast.

Definition at line 41 of file simplearrayreference.h.

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

00041                                            {
00042                         return *(new SimpleArrayReference(new SrcPosition(*(this->position)),
00043                                          this->identifier ? dynamic_cast<Identifier*>(&(this->identifier->clone())) : 0,
00044                                          this->expression ? dynamic_cast<Expression*>(&(this->expression->clone())) : 0));
00045                 }

Expression* SimpleArrayReference::getExpression  )  [inline]
 

Definition at line 30 of file simplearrayreference.h.

Referenced by TypeCheckerVisitor::visitSimpleArrayReference().

00030                                             {
00031                         return this->expression;
00032                 }

Identifier* SimpleArrayReference::getIdentifier  )  [inline]
 

Definition at line 26 of file simplearrayreference.h.

Referenced by TypeCheckerVisitor::visitSimpleArrayReference().

00026                                             {
00027                         return this->identifier;
00028                 }

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

Reimplemented from ArrayReference.

Definition at line 5 of file simplearrayreference.cpp.

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

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

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

Reimplemented from ArrayReference.

Definition at line 15 of file simplearrayreference.cpp.

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

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

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

Implements Ast.

Definition at line 37 of file simplearrayreference.h.

References Visitor::visitSimpleArrayReference().

00037                                                                {
00038                         return visitor.visitSimpleArrayReference(this);
00039                 }


Member Data Documentation

Expression* SimpleArrayReference::expression [private]
 

Definition at line 11 of file simplearrayreference.h.

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

Identifier* SimpleArrayReference::identifier [private]
 

Definition at line 10 of file simplearrayreference.h.

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


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