#include <sequentialdeclaration.h>
Inheritance diagram for SequentialDeclaration:
Public Member Functions | |
SequentialDeclaration (SrcPosition *position, Declaration *declaration, SimpleDeclaration *simpleDeclaration) | |
SequentialDeclaration (const SequentialDeclaration &sequentialDeclaration) | |
virtual | ~SequentialDeclaration () |
Declaration * | getDeclaration () |
SimpleDeclaration * | getSimpleDeclaration () |
virtual Ast & | operator= (const Ast &ast) |
virtual bool | operator== (const Ast &ast) const |
virtual VisitorReturn * | visit (Visitor &visitor) |
virtual Ast & | clone () const |
Private Attributes | |
Declaration * | declaration |
SimpleDeclaration * | simpleDeclaration |
|
Definition at line 14 of file sequentialdeclaration.h. Referenced by clone().
00015 : Declaration(position), declaration(declaration), simpleDeclaration(simpleDeclaration) {} |
|
Definition at line 17 of file sequentialdeclaration.h. References Ast::position.
00017 : Declaration(sequentialDeclaration.position) { 00018 *(this) = sequentialDeclaration; 00019 } |
|
Definition at line 21 of file sequentialdeclaration.h.
00021 { 00022 delete this->declaration; 00023 delete this->simpleDeclaration; 00024 } |
|
Implements Ast. Definition at line 41 of file sequentialdeclaration.h. References SimpleDeclaration::clone(), and SequentialDeclaration().
00041 { 00042 return *(new SequentialDeclaration(new SrcPosition(*(this->position)), 00043 this->declaration ? dynamic_cast<Declaration*>(&(this->declaration->clone())) : 0, 00044 this->simpleDeclaration ? dynamic_cast<SimpleDeclaration*>(&(this->simpleDeclaration->clone())) : 0)); 00045 } |
|
Definition at line 26 of file sequentialdeclaration.h. Referenced by TypeCheckerVisitor::visitSequentialDeclaration().
00026 { 00027 return this->declaration; 00028 } |
|
Definition at line 30 of file sequentialdeclaration.h. Referenced by TypeCheckerVisitor::visitSequentialDeclaration().
00030 { 00031 return this->simpleDeclaration; 00032 } |
|
Reimplemented from Declaration. Definition at line 5 of file sequentialdeclaration.cpp. References SimpleDeclaration::clone(), Ast::clone(), declaration, Declaration::operator=(), and simpleDeclaration.
00005 { 00006 const SequentialDeclaration& sequentialDeclaration = dynamic_cast<const SequentialDeclaration&>(ast); 00007 00008 Declaration::operator=(ast); 00009 this->declaration = sequentialDeclaration.declaration ? dynamic_cast<Declaration*>(&(sequentialDeclaration.declaration->clone())) : 0; 00010 this->simpleDeclaration = sequentialDeclaration.simpleDeclaration ? dynamic_cast<SimpleDeclaration*>(&(sequentialDeclaration.simpleDeclaration->clone())) : 0; 00011 00012 return *(this); 00013 } |
|
Reimplemented from Declaration. Definition at line 15 of file sequentialdeclaration.cpp. References declaration, Declaration::operator==(), and simpleDeclaration.
00015 { 00016 bool result = false; 00017 const SequentialDeclaration& sequentialDeclaration = dynamic_cast<const SequentialDeclaration&>(ast); 00018 00019 if (typeid(ast) != typeid(SequentialDeclaration)) 00020 return false; 00021 00022 if (this->declaration && this->simpleDeclaration) 00023 result = (*(this->declaration) == *(sequentialDeclaration.declaration) && 00024 *(this->simpleDeclaration) == *(sequentialDeclaration.simpleDeclaration)); 00025 00026 return result && Declaration::operator==(ast); 00027 } |
|
Implements Ast. Definition at line 37 of file sequentialdeclaration.h. References Visitor::visitSequentialDeclaration().
00037 { 00038 return visitor.visitSequentialDeclaration(this); 00039 } |
|
Definition at line 9 of file sequentialdeclaration.h. Referenced by operator=(), and operator==(). |
|
Definition at line 10 of file sequentialdeclaration.h. Referenced by operator=(), and operator==(). |