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

sequentialleftsidelist.cpp

Go to the documentation of this file.
00001 #include <typeinfo>
00002 #include "sequentialleftsidelist.h"
00003 using namespace std;
00004 
00005 Ast& SequentialLeftSideList::operator = (const Ast& ast) {
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 }
00014 
00015 bool SequentialLeftSideList::operator == (const Ast& ast) const {
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 }
00028 

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