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

SequentialDeclaration Class Reference

#include <sequentialdeclaration.h>

Inheritance diagram for SequentialDeclaration:

Inheritance graph
[legend]
Collaboration diagram for SequentialDeclaration:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SequentialDeclaration (SrcPosition *position, Declaration *declaration, SimpleDeclaration *simpleDeclaration)
 SequentialDeclaration (const SequentialDeclaration &sequentialDeclaration)
virtual ~SequentialDeclaration ()
DeclarationgetDeclaration ()
SimpleDeclarationgetSimpleDeclaration ()
virtual Astoperator= (const Ast &ast)
virtual bool operator== (const Ast &ast) const
virtual VisitorReturnvisit (Visitor &visitor)
virtual Astclone () const

Private Attributes

Declarationdeclaration
SimpleDeclarationsimpleDeclaration

Constructor & Destructor Documentation

SequentialDeclaration::SequentialDeclaration SrcPosition position,
Declaration declaration,
SimpleDeclaration simpleDeclaration
[inline]
 

Definition at line 14 of file sequentialdeclaration.h.

Referenced by clone().

00015                         : Declaration(position), declaration(declaration), simpleDeclaration(simpleDeclaration) {}

SequentialDeclaration::SequentialDeclaration const SequentialDeclaration &  sequentialDeclaration  )  [inline]
 

Definition at line 17 of file sequentialdeclaration.h.

References Ast::position.

00017                                                                                           : Declaration(sequentialDeclaration.position) {
00018                         *(this) = sequentialDeclaration;
00019                 }

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

Definition at line 21 of file sequentialdeclaration.h.

00021                                                  {
00022                         delete this->declaration;
00023                         delete this->simpleDeclaration;
00024                 }


Member Function Documentation

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

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                 }

Declaration* SequentialDeclaration::getDeclaration  )  [inline]
 

Definition at line 26 of file sequentialdeclaration.h.

Referenced by TypeCheckerVisitor::visitSequentialDeclaration().

00026                                               {
00027                         return this->declaration;
00028                 }

SimpleDeclaration* SequentialDeclaration::getSimpleDeclaration  )  [inline]
 

Definition at line 30 of file sequentialdeclaration.h.

Referenced by TypeCheckerVisitor::visitSequentialDeclaration().

00030                                                           {
00031                         return this->simpleDeclaration;
00032                 }

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

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 }

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

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 }

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

Implements Ast.

Definition at line 37 of file sequentialdeclaration.h.

References Visitor::visitSequentialDeclaration().

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


Member Data Documentation

Declaration* SequentialDeclaration::declaration [private]
 

Definition at line 9 of file sequentialdeclaration.h.

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

SimpleDeclaration* SequentialDeclaration::simpleDeclaration [private]
 

Definition at line 10 of file sequentialdeclaration.h.

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


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