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

SequentialLeftSideList Class Reference

#include <sequentialleftsidelist.h>

Inheritance diagram for SequentialLeftSideList:

Inheritance graph
[legend]
Collaboration diagram for SequentialLeftSideList:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SequentialLeftSideList (SrcPosition *position, LeftSideList *leftSideList, SimpleLeftSideList *simpleLeftSideList)
 SequentialLeftSideList (const SequentialLeftSideList &sequentialLeftSideList)
virtual ~SequentialLeftSideList ()
LeftSideListgetLeftSideList ()
SimpleLeftSideListgetSimpleLeftSideList ()
virtual Astoperator= (const Ast &ast)
virtual bool operator== (const Ast &ast) const
virtual VisitorReturnvisit (Visitor &visitor)
virtual Astclone () const

Private Attributes

LeftSideListleftSideList
SimpleLeftSideListsimpleLeftSideList

Constructor & Destructor Documentation

SequentialLeftSideList::SequentialLeftSideList SrcPosition position,
LeftSideList leftSideList,
SimpleLeftSideList simpleLeftSideList
[inline]
 

Definition at line 14 of file sequentialleftsidelist.h.

Referenced by clone().

00015                         : LeftSideList(position), leftSideList(leftSideList), simpleLeftSideList(simpleLeftSideList) {}

SequentialLeftSideList::SequentialLeftSideList const SequentialLeftSideList &  sequentialLeftSideList  )  [inline]
 

Definition at line 17 of file sequentialleftsidelist.h.

References Ast::position.

00017                                                                                              : LeftSideList(sequentialLeftSideList.position) {
00018                         *(this) = sequentialLeftSideList;
00019                 }

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

Definition at line 21 of file sequentialleftsidelist.h.

00021                                                   {
00022                         delete this->leftSideList;
00023                         delete this->simpleLeftSideList;
00024                 }


Member Function Documentation

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

Implements Ast.

Definition at line 41 of file sequentialleftsidelist.h.

References SimpleLeftSideList::clone(), and SequentialLeftSideList().

00041                                            {
00042                         return *(new SequentialLeftSideList(new SrcPosition(*(this->position)),
00043                                          this->leftSideList ? dynamic_cast<LeftSideList*>(&(this->leftSideList->clone())) : 0,
00044                                          this->simpleLeftSideList ? dynamic_cast<SimpleLeftSideList*>(&(this->simpleLeftSideList->clone())) : 0));
00045                 }

LeftSideList* SequentialLeftSideList::getLeftSideList  )  [inline]
 

Definition at line 26 of file sequentialleftsidelist.h.

Referenced by TypeCheckerVisitor::visitSequentialLeftSideList().

00026                                                 {
00027                         return this->leftSideList;
00028                 }

SimpleLeftSideList* SequentialLeftSideList::getSimpleLeftSideList  )  [inline]
 

Definition at line 30 of file sequentialleftsidelist.h.

Referenced by TypeCheckerVisitor::visitSequentialLeftSideList().

00030                                                             {
00031                         return this->simpleLeftSideList;
00032                 }

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

Reimplemented from LeftSideList.

Definition at line 5 of file sequentialleftsidelist.cpp.

References SimpleLeftSideList::clone(), Ast::clone(), leftSideList, LeftSideList::operator=(), and simpleLeftSideList.

00005                                                        {
00006         const SequentialLeftSideList& sequentialLeftSideList = dynamic_cast<const SequentialLeftSideList&>(ast);
00007 
00008         LeftSideList::operator=(ast);
00009         this->leftSideList = sequentialLeftSideList.leftSideList ? dynamic_cast<LeftSideList*>(&(sequentialLeftSideList.leftSideList->clone())) : 0;
00010         this->simpleLeftSideList = sequentialLeftSideList.simpleLeftSideList ? dynamic_cast<SimpleLeftSideList*>(&(sequentialLeftSideList.simpleLeftSideList->clone())) : 0;
00011 
00012         return *(this);
00013 }

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

Reimplemented from LeftSideList.

Definition at line 15 of file sequentialleftsidelist.cpp.

References leftSideList, LeftSideList::operator==(), and simpleLeftSideList.

00015                                                               {
00016         bool result = false;
00017         const SequentialLeftSideList& sequentialLeftSideList = dynamic_cast<const SequentialLeftSideList&>(ast);
00018 
00019         if (typeid(ast) != typeid(SequentialLeftSideList))
00020                 return false;
00021 
00022         if (this->leftSideList && this->simpleLeftSideList)
00023                 result = (*(this->leftSideList) == *(sequentialLeftSideList.leftSideList) &&
00024                                   *(this->simpleLeftSideList) == *(sequentialLeftSideList.simpleLeftSideList));
00025 
00026         return result && LeftSideList::operator==(ast);
00027 }

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

Implements Ast.

Definition at line 37 of file sequentialleftsidelist.h.

References Visitor::visitSequentialLeftSideList().

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


Member Data Documentation

LeftSideList* SequentialLeftSideList::leftSideList [private]
 

Definition at line 9 of file sequentialleftsidelist.h.

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

SimpleLeftSideList* SequentialLeftSideList::simpleLeftSideList [private]
 

Definition at line 10 of file sequentialleftsidelist.h.

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


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