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

SequentialAction Class Reference

#include <sequentialaction.h>

Inheritance diagram for SequentialAction:

Inheritance graph
[legend]
Collaboration diagram for SequentialAction:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SequentialAction (SrcPosition *position, Action *action, SimpleAction *simpleAction)
 SequentialAction (const SequentialAction &sequentialAction)
virtual ~SequentialAction ()
ActiongetAction ()
SimpleActiongetSimpleAction ()
virtual Astoperator= (const Ast &ast)
virtual bool operator== (const Ast &ast) const
virtual VisitorReturnvisit (Visitor &visitor)
virtual Astclone () const

Private Attributes

Actionaction
SimpleActionsimpleAction

Constructor & Destructor Documentation

SequentialAction::SequentialAction SrcPosition position,
Action action,
SimpleAction simpleAction
[inline]
 

Definition at line 14 of file sequentialaction.h.

Referenced by clone().

00015                         : Action(position), action(action), simpleAction(simpleAction) {}

SequentialAction::SequentialAction const SequentialAction &  sequentialAction  )  [inline]
 

Definition at line 17 of file sequentialaction.h.

References Ast::position.

00017                                                                            : Action(sequentialAction.position) {
00018                         *(this) = sequentialAction;
00019                 }

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

Definition at line 21 of file sequentialaction.h.

00021                                             {
00022                         delete this->action;
00023                         delete this->simpleAction;
00024                 }


Member Function Documentation

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

Implements Ast.

Definition at line 41 of file sequentialaction.h.

References SimpleAction::clone(), and SequentialAction().

00041                                            {
00042                         return *(new SequentialAction(new SrcPosition(*(this->position)),
00043                                          this->action ? dynamic_cast<Action*>(&(this->action->clone())) : 0,
00044                                          this->simpleAction ? dynamic_cast<SimpleAction*>(&(this->simpleAction->clone())) : 0));
00045                 }

Action* SequentialAction::getAction  )  [inline]
 

Definition at line 26 of file sequentialaction.h.

Referenced by TypeCheckerVisitor::visitSequentialAction().

00026                                     {
00027                         return this->action;
00028                 }

SimpleAction* SequentialAction::getSimpleAction  )  [inline]
 

Definition at line 30 of file sequentialaction.h.

Referenced by TypeCheckerVisitor::visitSequentialAction().

00030                                                 {
00031                         return this->simpleAction;
00032                 }

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

Reimplemented from Action.

Definition at line 5 of file sequentialaction.cpp.

References action, SimpleAction::clone(), Ast::clone(), Action::operator=(), and simpleAction.

00005                                                  {
00006         const SequentialAction& sequentialAction = dynamic_cast<const SequentialAction&>(ast);
00007 
00008         Action::operator=(ast);
00009         this->action = sequentialAction.action ? dynamic_cast<Action*>(&(sequentialAction.action->clone())) : 0;
00010         this->simpleAction = sequentialAction.simpleAction ? dynamic_cast<SimpleAction*>(&(sequentialAction.simpleAction->clone())) : 0;
00011 
00012         return *(this);
00013 }

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

Reimplemented from Action.

Definition at line 15 of file sequentialaction.cpp.

References action, Action::operator==(), and simpleAction.

00015                                                         {
00016         bool result = false;
00017         const SequentialAction& sequentialAction = dynamic_cast<const SequentialAction&>(ast);
00018 
00019         if (typeid(ast) != typeid(SequentialAction))
00020                 return false;
00021 
00022         if (this->action && this->simpleAction)
00023                 result = (*(this->action) == *(sequentialAction.action) &&
00024                                   *(this->simpleAction) == *(sequentialAction.simpleAction));
00025 
00026         return result && Action::operator==(ast);
00027 }

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

Implements Ast.

Definition at line 37 of file sequentialaction.h.

References Visitor::visitSequentialAction().

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


Member Data Documentation

Action* SequentialAction::action [private]
 

Definition at line 9 of file sequentialaction.h.

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

SimpleAction* SequentialAction::simpleAction [private]
 

Definition at line 10 of file sequentialaction.h.

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


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