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