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

SimpleFieldDeclaration Class Reference

#include <simplefielddeclaration.h>

Inheritance diagram for SimpleFieldDeclaration:

Inheritance graph
[legend]
Collaboration diagram for SimpleFieldDeclaration:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SimpleFieldDeclaration (SrcPosition *position, Identifier *identifier, FieldType *fieldType, Expression *expression, StringLiteral *stringLiteral)
 SimpleFieldDeclaration (const SimpleFieldDeclaration &simpleFieldDeclaration)
virtual ~SimpleFieldDeclaration ()
IdentifiergetIdentifier ()
FieldTypegetFieldType ()
ExpressiongetExpression ()
StringLiteralgetStringLiteral ()
virtual Astoperator= (const Ast &ast)
virtual bool operator== (const Ast &ast) const
virtual VisitorReturnvisit (Visitor &visitor)
virtual Astclone () const

Private Attributes

Identifieridentifier
FieldTypefieldType
Expressionexpression
StringLiteralstringLiteral

Constructor & Destructor Documentation

SimpleFieldDeclaration::SimpleFieldDeclaration SrcPosition position,
Identifier identifier,
FieldType fieldType,
Expression expression,
StringLiteral stringLiteral
[inline]
 

Definition at line 18 of file simplefielddeclaration.h.

Referenced by clone().

00019                         : FieldDeclaration(position), identifier(identifier), fieldType(fieldType), expression(expression), stringLiteral(stringLiteral) {}

SimpleFieldDeclaration::SimpleFieldDeclaration const SimpleFieldDeclaration &  simpleFieldDeclaration  )  [inline]
 

Definition at line 21 of file simplefielddeclaration.h.

References Ast::position.

00021                                                                                              : FieldDeclaration(simpleFieldDeclaration.position) {
00022                         *(this) = simpleFieldDeclaration;
00023                 }

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

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                 }


Member Function Documentation

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

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                 }

Expression* SimpleFieldDeclaration::getExpression  )  [inline]
 

Definition at line 40 of file simplefielddeclaration.h.

Referenced by TypeCheckerVisitor::visitSimpleFieldDeclaration().

00040                                             {
00041                         return this->expression;
00042                 }

FieldType* SimpleFieldDeclaration::getFieldType  )  [inline]
 

Definition at line 36 of file simplefielddeclaration.h.

Referenced by TypeCheckerVisitor::visitSimpleFieldDeclaration(), JavaCodeGeneratorVisitor::visitSimpleFieldDeclaration(), and JavaCodeGeneratorVisitor::visitSimpleMessage().

00036                                           {
00037                         return this->fieldType;
00038                 }

Identifier* SimpleFieldDeclaration::getIdentifier  )  [inline]
 

Definition at line 32 of file simplefielddeclaration.h.

Referenced by TypeCheckerVisitor::visitSimpleFieldDeclaration(), JavaCodeGeneratorVisitor::visitSimpleFieldDeclaration(), and JavaCodeGeneratorVisitor::visitSimpleMessage().

00032                                             {
00033                         return this->identifier;
00034                 }

StringLiteral* SimpleFieldDeclaration::getStringLiteral  )  [inline]
 

Definition at line 44 of file simplefielddeclaration.h.

00044                                                   {
00045                         return this->stringLiteral;
00046                 }

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

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 }

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

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 }

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

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                 }


Member Data Documentation

Expression* SimpleFieldDeclaration::expression [private]
 

Definition at line 14 of file simplefielddeclaration.h.

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

FieldType* SimpleFieldDeclaration::fieldType [private]
 

Definition at line 13 of file simplefielddeclaration.h.

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

Identifier* SimpleFieldDeclaration::identifier [private]
 

Definition at line 12 of file simplefielddeclaration.h.

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

StringLiteral* SimpleFieldDeclaration::stringLiteral [private]
 

Definition at line 15 of file simplefielddeclaration.h.

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


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