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

sequentialfielddeclaration.h

Go to the documentation of this file.
00001 #ifndef SEQUENTIAL_FIELD_DECLARATION_H
00002 #define SEQUENTIAL_FIELD_DECLARATION_H
00003 
00004 #include "fielddeclaration.h"
00005 #include "simplefielddeclaration.h"
00006 
00007 class SequentialFieldDeclaration : public FieldDeclaration {
00008         private:
00009                 FieldDeclaration *fieldDeclaration;
00010                 SimpleFieldDeclaration *simpleFieldDeclaration;
00011 
00012 
00013         public:
00014                 SequentialFieldDeclaration(SrcPosition *position, FieldDeclaration *fieldDeclaration, SimpleFieldDeclaration *simpleFieldDeclaration)
00015                         : FieldDeclaration(position), fieldDeclaration(fieldDeclaration), simpleFieldDeclaration(simpleFieldDeclaration) {}
00016 
00017                 SequentialFieldDeclaration(const SequentialFieldDeclaration& sequentialFieldDeclaration) : FieldDeclaration(sequentialFieldDeclaration.position) {
00018                         *(this) = sequentialFieldDeclaration;
00019                 }
00020 
00021                 virtual ~SequentialFieldDeclaration() {
00022                         delete this->fieldDeclaration;
00023                         delete this->simpleFieldDeclaration;
00024                 }
00025 
00026                 FieldDeclaration *getFieldDeclaration() {
00027                         return this->fieldDeclaration;
00028                 }
00029 
00030                 SimpleFieldDeclaration *getSimpleFieldDeclaration() {
00031                         return this->simpleFieldDeclaration;
00032                 }
00033 
00034                 virtual Ast& operator = (const Ast& ast);
00035                 virtual bool operator == (const Ast& ast) const;
00036 
00037                 virtual VisitorReturn *visit(Visitor& visitor) {
00038                         return visitor.visitSequentialFieldDeclaration(this);
00039                 }
00040 
00041                 virtual Ast& clone() const {
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                 }
00046 };
00047 
00048 #endif

Generated on Mon Dec 1 17:36:37 2003 for Protomake by doxygen1.3