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

SimpleAction Class Reference

#include <simpleaction.h>

Inheritance diagram for SimpleAction:

Inheritance graph
[legend]
Collaboration diagram for SimpleAction:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SimpleAction (SrcPosition *position, Guard *guard, Statement *statement)
 SimpleAction (const SimpleAction &simpleAction)
virtual ~SimpleAction ()
GuardgetGuard ()
StatementgetStatement ()
virtual Astoperator= (const Ast &ast)
virtual bool operator== (const Ast &ast) const
virtual VisitorReturnvisit (Visitor &visitor)
virtual Astclone () const

Private Attributes

Guardguard
Statementstatement

Constructor & Destructor Documentation

SimpleAction::SimpleAction SrcPosition position,
Guard guard,
Statement statement
[inline]
 

Definition at line 14 of file simpleaction.h.

Referenced by clone().

00015                         : Action(position), guard(guard), statement(statement) {}

SimpleAction::SimpleAction const SimpleAction &  simpleAction  )  [inline]
 

Definition at line 17 of file simpleaction.h.

References Ast::position.

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

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

Definition at line 21 of file simpleaction.h.

00021                                         {
00022                         delete this->guard;
00023                         delete this->statement;
00024                 }


Member Function Documentation

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

Implements Ast.

Definition at line 41 of file simpleaction.h.

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

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

00041                                            {
00042                         return *(new SimpleAction(new SrcPosition(*(this->position)),
00043                                          this->guard ? dynamic_cast<Guard*>(&(this->guard->clone())) : 0,
00044                                          this->statement ? dynamic_cast<Statement*>(&(this->statement->clone())) : 0));
00045                 }

Guard* SimpleAction::getGuard  )  [inline]
 

Definition at line 26 of file simpleaction.h.

Referenced by TypeCheckerVisitor::visitSimpleAction().

00026                                   {
00027                         return this->guard;
00028                 }

Statement* SimpleAction::getStatement  )  [inline]
 

Definition at line 30 of file simpleaction.h.

Referenced by TypeCheckerVisitor::visitSimpleAction().

00030                                           {
00031                         return this->statement;
00032                 }

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

Reimplemented from Action.

Definition at line 5 of file simpleaction.cpp.

References Ast::clone(), guard, Action::operator=(), and statement.

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

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

Reimplemented from Action.

Definition at line 15 of file simpleaction.cpp.

References guard, Action::operator==(), and statement.

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

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

Implements Ast.

Definition at line 37 of file simpleaction.h.

References Visitor::visitSimpleAction().

Referenced by TypeCheckerVisitor::visitSequentialAction().

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


Member Data Documentation

Guard* SimpleAction::guard [private]
 

Definition at line 10 of file simpleaction.h.

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

Statement* SimpleAction::statement [private]
 

Definition at line 11 of file simpleaction.h.

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


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