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

SimpleLeftSideList Class Reference

#include <simpleleftsidelist.h>

Inheritance diagram for SimpleLeftSideList:

Inheritance graph
[legend]
Collaboration diagram for SimpleLeftSideList:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SimpleLeftSideList (SrcPosition *position, LeftSide *leftSide)
 SimpleLeftSideList (const SimpleLeftSideList &simpleLeftSideList)
virtual ~SimpleLeftSideList ()
LeftSidegetLeftSide ()
virtual Astoperator= (const Ast &ast)
virtual bool operator== (const Ast &ast) const
virtual VisitorReturnvisit (Visitor &visitor)
virtual Astclone () const

Private Attributes

LeftSideleftSide

Constructor & Destructor Documentation

SimpleLeftSideList::SimpleLeftSideList SrcPosition position,
LeftSide leftSide
[inline]
 

Definition at line 12 of file simpleleftsidelist.h.

Referenced by clone().

00013                         : LeftSideList(position), leftSide(leftSide) {}

SimpleLeftSideList::SimpleLeftSideList const SimpleLeftSideList &  simpleLeftSideList  )  [inline]
 

Definition at line 15 of file simpleleftsidelist.h.

References Ast::position.

00015                                                                                  : LeftSideList(simpleLeftSideList.position) {
00016                         *(this) = simpleLeftSideList;
00017                 }

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

Definition at line 19 of file simpleleftsidelist.h.

00019                                               {
00020                         delete this->leftSide;
00021                 }


Member Function Documentation

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

Implements Ast.

Definition at line 34 of file simpleleftsidelist.h.

References SimpleLeftSideList().

Referenced by SequentialLeftSideList::clone(), and SequentialLeftSideList::operator=().

00034                                            {
00035                         return *(new SimpleLeftSideList(new SrcPosition(*(this->position)),
00036                                          this->leftSide ? dynamic_cast<LeftSide*>(&(this->leftSide->clone())) : 0));
00037                 }

LeftSide* SimpleLeftSideList::getLeftSide  )  [inline]
 

Definition at line 23 of file simpleleftsidelist.h.

Referenced by TypeCheckerVisitor::visitSimpleLeftSideList().

00023                                         {
00024                         return this->leftSide;
00025                 }

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

Reimplemented from LeftSideList.

Definition at line 5 of file simpleleftsidelist.cpp.

References Ast::clone(), leftSide, and LeftSideList::operator=().

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

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

Reimplemented from LeftSideList.

Definition at line 14 of file simpleleftsidelist.cpp.

References leftSide, and LeftSideList::operator==().

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

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

Implements Ast.

Definition at line 30 of file simpleleftsidelist.h.

References Visitor::visitSimpleLeftSideList().

Referenced by TypeCheckerVisitor::visitSequentialLeftSideList().

00030                                                                {
00031                         return visitor.visitSimpleLeftSideList(this);
00032                 }


Member Data Documentation

LeftSide* SimpleLeftSideList::leftSide [private]
 

Definition at line 9 of file simpleleftsidelist.h.

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


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