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

SequentialFieldDeclaration Class Reference

#include <sequentialfielddeclaration.h>

Inheritance diagram for SequentialFieldDeclaration:

Inheritance graph
[legend]
Collaboration diagram for SequentialFieldDeclaration:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SequentialFieldDeclaration (SrcPosition *position, FieldDeclaration *fieldDeclaration, SimpleFieldDeclaration *simpleFieldDeclaration)
 SequentialFieldDeclaration (const SequentialFieldDeclaration &sequentialFieldDeclaration)
virtual ~SequentialFieldDeclaration ()
FieldDeclarationgetFieldDeclaration ()
SimpleFieldDeclarationgetSimpleFieldDeclaration ()
virtual Astoperator= (const Ast &ast)
virtual bool operator== (const Ast &ast) const
virtual VisitorReturnvisit (Visitor &visitor)
virtual Astclone () const

Private Attributes

FieldDeclarationfieldDeclaration
SimpleFieldDeclarationsimpleFieldDeclaration

Constructor & Destructor Documentation

SequentialFieldDeclaration::SequentialFieldDeclaration SrcPosition position,
FieldDeclaration fieldDeclaration,
SimpleFieldDeclaration simpleFieldDeclaration
[inline]
 

Definition at line 14 of file sequentialfielddeclaration.h.

Referenced by clone().

00015                         : FieldDeclaration(position), fieldDeclaration(fieldDeclaration), simpleFieldDeclaration(simpleFieldDeclaration) {}

SequentialFieldDeclaration::SequentialFieldDeclaration const SequentialFieldDeclaration &  sequentialFieldDeclaration  )  [inline]
 

Definition at line 17 of file sequentialfielddeclaration.h.

References Ast::position.

00017                                                                                                          : FieldDeclaration(sequentialFieldDeclaration.position) {
00018                         *(this) = sequentialFieldDeclaration;
00019                 }

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

Definition at line 21 of file sequentialfielddeclaration.h.

00021                                                       {
00022                         delete this->fieldDeclaration;
00023                         delete this->simpleFieldDeclaration;
00024                 }


Member Function Documentation

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

Implements Ast.

Definition at line 41 of file sequentialfielddeclaration.h.

References SimpleFieldDeclaration::clone(), and SequentialFieldDeclaration().

00041                                            {
00042                         return *(new SequentialFieldDeclaration(new SrcPosition(*(this->position)),
00043                                          this->fieldDeclaration ? dynamic_cast<FieldDeclaration*>(&(this->fieldDeclaration->clone())) : 0,
00044                                          this->simpleFieldDeclaration ? dynamic_cast<SimpleFieldDeclaration*>(&(this->simpleFieldDeclaration->clone())) : 0));
00045                 }

FieldDeclaration* SequentialFieldDeclaration::getFieldDeclaration  )  [inline]
 

Definition at line 26 of file sequentialfielddeclaration.h.

Referenced by TypeCheckerVisitor::visitSequentialFieldDeclaration(), and JavaCodeGeneratorVisitor::visitSequentialFieldDeclaration().

00026                                                         {
00027                         return this->fieldDeclaration;
00028                 }

SimpleFieldDeclaration* SequentialFieldDeclaration::getSimpleFieldDeclaration  )  [inline]
 

Definition at line 30 of file sequentialfielddeclaration.h.

Referenced by TypeCheckerVisitor::visitSequentialFieldDeclaration(), and JavaCodeGeneratorVisitor::visitSequentialFieldDeclaration().

00030                                                                     {
00031                         return this->simpleFieldDeclaration;
00032                 }

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

Reimplemented from FieldDeclaration.

Definition at line 5 of file sequentialfielddeclaration.cpp.

References SimpleFieldDeclaration::clone(), Ast::clone(), fieldDeclaration, FieldDeclaration::operator=(), and simpleFieldDeclaration.

00005                                                            {
00006         const SequentialFieldDeclaration& sequentialFieldDeclaration = dynamic_cast<const SequentialFieldDeclaration&>(ast);
00007 
00008         FieldDeclaration::operator=(ast);
00009         this->fieldDeclaration = sequentialFieldDeclaration.fieldDeclaration ? dynamic_cast<FieldDeclaration*>(&(sequentialFieldDeclaration.fieldDeclaration->clone())) : 0;
00010         this->simpleFieldDeclaration = sequentialFieldDeclaration.simpleFieldDeclaration ? dynamic_cast<SimpleFieldDeclaration*>(&(sequentialFieldDeclaration.simpleFieldDeclaration->clone())) : 0;
00011 
00012         return *(this);
00013 }

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

Reimplemented from FieldDeclaration.

Definition at line 15 of file sequentialfielddeclaration.cpp.

References fieldDeclaration, FieldDeclaration::operator==(), and simpleFieldDeclaration.

00015                                                                   {
00016         bool result = false;
00017         const SequentialFieldDeclaration& sequentialFieldDeclaration = dynamic_cast<const SequentialFieldDeclaration&>(ast);
00018 
00019         if (typeid(ast) != typeid(SequentialFieldDeclaration))
00020                 return false;
00021 
00022         if (this->fieldDeclaration && this->simpleFieldDeclaration)
00023                 result = (*(this->fieldDeclaration) == *(sequentialFieldDeclaration.fieldDeclaration) &&
00024                                   *(this->simpleFieldDeclaration) == *(sequentialFieldDeclaration.simpleFieldDeclaration));
00025 
00026         return result && FieldDeclaration::operator==(ast);
00027 }

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

Implements Ast.

Definition at line 37 of file sequentialfielddeclaration.h.

References Visitor::visitSequentialFieldDeclaration().

00037                                                                {
00038                         return visitor.visitSequentialFieldDeclaration(this);
00039                 }


Member Data Documentation

FieldDeclaration* SequentialFieldDeclaration::fieldDeclaration [private]
 

Definition at line 9 of file sequentialfielddeclaration.h.

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

SimpleFieldDeclaration* SequentialFieldDeclaration::simpleFieldDeclaration [private]
 

Definition at line 10 of file sequentialfielddeclaration.h.

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


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