#include <multiplearrayreference.h>
Inheritance diagram for MultipleArrayReference:
Public Member Functions | |
MultipleArrayReference (SrcPosition *position, ArrayReference *arrayReference, Expression *expression) | |
MultipleArrayReference (const MultipleArrayReference &multipleArrayReference) | |
virtual | ~MultipleArrayReference () |
ArrayReference * | getArrayReference () |
Expression * | getExpression () |
virtual Ast & | operator= (const Ast &ast) |
virtual bool | operator== (const Ast &ast) const |
virtual VisitorReturn * | visit (Visitor &visitor) |
virtual Ast & | clone () const |
Private Attributes | |
ArrayReference * | arrayReference |
Expression * | expression |
|
Definition at line 13 of file multiplearrayreference.h. Referenced by clone().
00014 : ArrayReference(position), Ast(position), arrayReference(arrayReference), expression(expression) {} |
|
Definition at line 16 of file multiplearrayreference.h. References Ast::position.
00016 : ArrayReference(multipleArrayReference.position), Ast(position) { 00017 *(this) = multipleArrayReference; 00018 } |
|
Definition at line 20 of file multiplearrayreference.h.
00020 { 00021 delete this->arrayReference; 00022 delete this->expression; 00023 } |
|
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 } |
|
Definition at line 25 of file multiplearrayreference.h. Referenced by TypeCheckerVisitor::visitMultipleArrayReference().
00025 { 00026 return this->arrayReference; 00027 } |
|
Definition at line 29 of file multiplearrayreference.h. Referenced by TypeCheckerVisitor::visitMultipleArrayReference().
00029 { 00030 return this->expression; 00031 } |
|
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 } |
|
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 } |
|
Implements Ast. Definition at line 36 of file multiplearrayreference.h. References Visitor::visitMultipleArrayReference().
00036 { 00037 return visitor.visitMultipleArrayReference(this); 00038 } |
|
Definition at line 9 of file multiplearrayreference.h. Referenced by operator=(), and operator==(). |
|
Definition at line 10 of file multiplearrayreference.h. Referenced by operator=(), and operator==(). |