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

SimpleProcess Class Reference

#include <simpleprocess.h>

Inheritance diagram for SimpleProcess:

Inheritance graph
[legend]
Collaboration diagram for SimpleProcess:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SimpleProcess (SrcPosition *position, Identifier *identifier, Declaration *declaration, Action *action, bool server)
 SimpleProcess (const SimpleProcess &simpleProcess)
virtual ~SimpleProcess ()
IdentifiergetIdentifier ()
DeclarationgetDeclaration ()
ActiongetAction ()
bool isServer () const
virtual Astoperator= (const Ast &ast)
virtual bool operator== (const Ast &ast) const
virtual VisitorReturnvisit (Visitor &visitor)
virtual Astclone () const

Private Attributes

Identifieridentifier
Declarationdeclaration
Actionaction
bool server

Constructor & Destructor Documentation

SimpleProcess::SimpleProcess SrcPosition position,
Identifier identifier,
Declaration declaration,
Action action,
bool  server
[inline]
 

Definition at line 17 of file simpleprocess.h.

Referenced by clone().

00018                         : Process(position), identifier(identifier), declaration(declaration), action(action), server(server) {}

SimpleProcess::SimpleProcess const SimpleProcess &  simpleProcess  )  [inline]
 

Definition at line 20 of file simpleprocess.h.

References Ast::position.

00020                                                                   : Process(simpleProcess.position) {
00021                         *(this) = simpleProcess;
00022                 }

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

Definition at line 24 of file simpleprocess.h.

00024                                          {
00025                         delete this->identifier;
00026                         delete this->declaration;
00027                         delete this->action;
00028                 }


Member Function Documentation

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

Implements Ast.

Definition at line 53 of file simpleprocess.h.

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

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

00053                                            {
00054                         return *(new SimpleProcess(new SrcPosition(*(this->position)),
00055                                          this->identifier ? dynamic_cast<Identifier*>(&(this->identifier->clone())) : 0,
00056                                          this->declaration ? dynamic_cast<Declaration*>(&(this->declaration->clone())) : 0,
00057                                          this->action ? dynamic_cast<Action*>(&(this->action->clone())) : 0, this->server));
00058                 }

Action* SimpleProcess::getAction  )  [inline]
 

Definition at line 38 of file simpleprocess.h.

Referenced by TypeCheckerVisitor::visitSimpleProcess().

00038                                     {
00039                         return this->action;
00040                 }

Declaration* SimpleProcess::getDeclaration  )  [inline]
 

Definition at line 34 of file simpleprocess.h.

Referenced by TypeCheckerVisitor::visitSimpleProcess().

00034                                               {
00035                         return this->declaration;
00036                 }

Identifier* SimpleProcess::getIdentifier  )  [inline]
 

Definition at line 30 of file simpleprocess.h.

Referenced by TypeCheckerVisitor::visitSimpleProcess().

00030                                             {
00031                         return this->identifier;
00032                 }

bool SimpleProcess::isServer  )  const [inline]
 

Definition at line 42 of file simpleprocess.h.

00042                                       {
00043                         return this->server;
00044                 }

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

Reimplemented from Process.

Definition at line 5 of file simpleprocess.cpp.

References action, Ast::clone(), Identifier::clone(), declaration, identifier, Process::operator=(), and server.

00005                                               {
00006         const SimpleProcess& simpleProcess = dynamic_cast<const SimpleProcess&>(ast);
00007 
00008         Process::operator=(ast);
00009         this->identifier = simpleProcess.identifier ? dynamic_cast<Identifier*>(&(simpleProcess.identifier->clone())) : 0;
00010         this->declaration = simpleProcess.declaration ? dynamic_cast<Declaration*>(&(simpleProcess.declaration->clone())) : 0;
00011         this->action = simpleProcess.action ? dynamic_cast<Action*>(&(simpleProcess.action->clone())) : 0;
00012         this->server = simpleProcess.server;
00013 
00014         return *(this);
00015 }

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

Reimplemented from Process.

Definition at line 17 of file simpleprocess.cpp.

References action, declaration, identifier, Process::operator==(), and server.

00017                                                      {
00018         bool result = false;
00019         const SimpleProcess& simpleProcess = dynamic_cast<const SimpleProcess&>(ast);
00020 
00021         if (typeid(ast) != typeid(SimpleProcess))
00022                 return false;
00023 
00024         if (this->identifier && this->declaration && this->action)
00025                 result = (*(this->identifier) == *(simpleProcess.identifier) &&
00026                                    *(this->declaration) == *(simpleProcess.declaration) &&
00027                                    *(this->action) == *(simpleProcess.action) &&
00028                                    this->server == simpleProcess.server);
00029 
00030         return result && Process::operator==(ast);
00031 }

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

Implements Ast.

Definition at line 49 of file simpleprocess.h.

References Visitor::visitSimpleProcess().

Referenced by TypeCheckerVisitor::visitSequentialProcess().

00049                                                                {
00050                         return visitor.visitSimpleProcess(this);
00051                 }


Member Data Documentation

Action* SimpleProcess::action [private]
 

Definition at line 13 of file simpleprocess.h.

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

Declaration* SimpleProcess::declaration [private]
 

Definition at line 12 of file simpleprocess.h.

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

Identifier* SimpleProcess::identifier [private]
 

Definition at line 11 of file simpleprocess.h.

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

bool SimpleProcess::server [private]
 

Definition at line 14 of file simpleprocess.h.

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


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