#include <simplefielddeclaration.h>
Inheritance diagram for SimpleFieldDeclaration:
Public Member Functions | |
SimpleFieldDeclaration (SrcPosition *position, Identifier *identifier, FieldType *fieldType, Expression *expression, StringLiteral *stringLiteral) | |
SimpleFieldDeclaration (const SimpleFieldDeclaration &simpleFieldDeclaration) | |
virtual | ~SimpleFieldDeclaration () |
Identifier * | getIdentifier () |
FieldType * | getFieldType () |
Expression * | getExpression () |
StringLiteral * | getStringLiteral () |
virtual Ast & | operator= (const Ast &ast) |
virtual bool | operator== (const Ast &ast) const |
virtual VisitorReturn * | visit (Visitor &visitor) |
virtual Ast & | clone () const |
Private Attributes | |
Identifier * | identifier |
FieldType * | fieldType |
Expression * | expression |
StringLiteral * | stringLiteral |
|
Definition at line 18 of file simplefielddeclaration.h. Referenced by clone().
00019 : FieldDeclaration(position), identifier(identifier), fieldType(fieldType), expression(expression), stringLiteral(stringLiteral) {} |
|
Definition at line 21 of file simplefielddeclaration.h. References Ast::position.
00021 : FieldDeclaration(simpleFieldDeclaration.position) { 00022 *(this) = simpleFieldDeclaration; 00023 } |
|
Definition at line 25 of file simplefielddeclaration.h.
00025 { 00026 delete this->identifier; 00027 delete this->fieldType; 00028 delete this->expression; 00029 delete this->stringLiteral; 00030 } |
|
Implements Ast. Definition at line 55 of file simplefielddeclaration.h. References StringLiteral::clone(), Ast::clone(), FieldType::clone(), and SimpleFieldDeclaration(). Referenced by SequentialFieldDeclaration::clone(), and SequentialFieldDeclaration::operator=().
00055 { 00056 return *(new SimpleFieldDeclaration(new SrcPosition(*(this->position)), 00057 this->identifier ? dynamic_cast<Identifier*>(&(this->identifier->clone())) : 0, 00058 this->fieldType ? dynamic_cast<FieldType*>(&(this->fieldType->clone())) : 0, 00059 this->expression ? dynamic_cast<Expression*>(&(this->expression->clone())) : 0, 00060 this->stringLiteral ? dynamic_cast<StringLiteral*>(&(this->stringLiteral->clone())) : 0)); 00061 } |
|
Definition at line 40 of file simplefielddeclaration.h. Referenced by TypeCheckerVisitor::visitSimpleFieldDeclaration().
00040 { 00041 return this->expression; 00042 } |
|
Definition at line 36 of file simplefielddeclaration.h. Referenced by TypeCheckerVisitor::visitSimpleFieldDeclaration(), JavaCodeGeneratorVisitor::visitSimpleFieldDeclaration(), and JavaCodeGeneratorVisitor::visitSimpleMessage().
00036 { 00037 return this->fieldType; 00038 } |
|
Definition at line 32 of file simplefielddeclaration.h. Referenced by TypeCheckerVisitor::visitSimpleFieldDeclaration(), JavaCodeGeneratorVisitor::visitSimpleFieldDeclaration(), and JavaCodeGeneratorVisitor::visitSimpleMessage().
00032 { 00033 return this->identifier; 00034 } |
|
Definition at line 44 of file simplefielddeclaration.h.
00044 { 00045 return this->stringLiteral; 00046 } |
|
Reimplemented from FieldDeclaration. Definition at line 5 of file simplefielddeclaration.cpp. References StringLiteral::clone(), Ast::clone(), FieldType::clone(), Identifier::clone(), expression, fieldType, identifier, FieldDeclaration::operator=(), and stringLiteral.
00005 { 00006 const SimpleFieldDeclaration& simpleFieldDeclaration = dynamic_cast<const SimpleFieldDeclaration&>(ast); 00007 00008 FieldDeclaration::operator=(ast); 00009 this->identifier = simpleFieldDeclaration.identifier ? dynamic_cast<Identifier*>(&(simpleFieldDeclaration.identifier->clone())) : 0; 00010 this->fieldType = simpleFieldDeclaration.fieldType ? dynamic_cast<FieldType*>(&(simpleFieldDeclaration.fieldType->clone())) : 0; 00011 this->expression = simpleFieldDeclaration.expression ? dynamic_cast<Expression*>(&(simpleFieldDeclaration.expression->clone())) : 0; 00012 this->stringLiteral = simpleFieldDeclaration.stringLiteral ? dynamic_cast<StringLiteral*>(&(simpleFieldDeclaration.stringLiteral->clone())) : 0; 00013 00014 return *(this); 00015 } |
|
Reimplemented from FieldDeclaration. Definition at line 17 of file simplefielddeclaration.cpp. References expression, fieldType, identifier, FieldDeclaration::operator==(), and stringLiteral.
00017 { 00018 bool result = false; 00019 const SimpleFieldDeclaration& simpleFieldDeclaration = dynamic_cast<const SimpleFieldDeclaration&>(ast); 00020 00021 if (typeid(ast) != typeid(SimpleFieldDeclaration)) 00022 return false; 00023 00024 if (this->identifier && this->fieldType && this->expression && this->stringLiteral) 00025 result = (*(this->identifier) == *(simpleFieldDeclaration.identifier) && 00026 *(this->fieldType) == *(simpleFieldDeclaration.fieldType) && 00027 *(this->expression) == *(simpleFieldDeclaration.expression) && 00028 *(this->stringLiteral) == *(simpleFieldDeclaration.stringLiteral)); 00029 00030 return result && FieldDeclaration::operator==(ast); 00031 } |
|
Implements Ast. Definition at line 51 of file simplefielddeclaration.h. References Visitor::visitSimpleFieldDeclaration(). Referenced by TypeCheckerVisitor::visitSequentialFieldDeclaration(), and JavaCodeGeneratorVisitor::visitSequentialFieldDeclaration().
00051 { 00052 return visitor.visitSimpleFieldDeclaration(this); 00053 } |
|
Definition at line 14 of file simplefielddeclaration.h. Referenced by operator=(), and operator==(). |
|
Definition at line 13 of file simplefielddeclaration.h. Referenced by operator=(), and operator==(). |
|
Definition at line 12 of file simplefielddeclaration.h. Referenced by operator=(), and operator==(). |
|
Definition at line 15 of file simplefielddeclaration.h. Referenced by operator=(), and operator==(). |