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

Program Class Reference

#include <program.h>

Inheritance diagram for Program:

Inheritance graph
[legend]
Collaboration diagram for Program:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Program (SrcPosition *position, Import *import, Behavior *behavior, Message *message, Process *process)
 Program (const Program &program)
virtual ~Program ()
ImportgetImport ()
BehaviorgetBehavior ()
MessagegetMessage ()
ProcessgetProcess ()
virtual Astoperator= (const Ast &ast)
virtual bool operator== (const Ast &ast) const
virtual VisitorReturnvisit (Visitor &visitor)
virtual Astclone () const

Private Attributes

Importimport
Behaviorbehavior
Messagemessage
Processprocess

Constructor & Destructor Documentation

Program::Program SrcPosition position,
Import import,
Behavior behavior,
Message message,
Process process
[inline]
 

Definition at line 18 of file program.h.

Referenced by clone().

00019                                 : Ast(position), import(import), behavior(behavior), message(message), process(process) {}

Program::Program const Program &  program  )  [inline]
 

Definition at line 21 of file program.h.

References Ast::position.

00021                                                 : Ast(program.position) {
00022                         *(this) = program;
00023                 }

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

Definition at line 25 of file program.h.

00025                                    {
00026                         delete this->import;
00027                         delete this->behavior;
00028                         delete this->message;
00029                         delete this->process;
00030                 }


Member Function Documentation

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

Implements Ast.

Definition at line 55 of file program.h.

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

00055                                            {
00056                         return *(new Program(new SrcPosition(*(this->position)),
00057                                          this->import ? dynamic_cast<Import*>(&(this->import->clone())) : 0,
00058                                          this->behavior ? dynamic_cast<Behavior*>(&(this->behavior->clone())) : 0,
00059                                          this->message ? dynamic_cast<Message*>(&(this->message->clone())) : 0,
00060                                          this->process ? dynamic_cast<Process*>(&(this->process->clone())) : 0));
00061                 }

Behavior* Program::getBehavior  )  [inline]
 

Definition at line 36 of file program.h.

Referenced by TypeCheckerVisitor::visitProgram(), and CCodeGeneratorVisitor::visitProgram().

00036                                         {
00037                         return this->behavior;
00038                 }

Import* Program::getImport  )  [inline]
 

Definition at line 32 of file program.h.

Referenced by TypeCheckerVisitor::visitProgram(), and CCodeGeneratorVisitor::visitProgram().

00032                                     {
00033                         return this->import;
00034                 }

Message* Program::getMessage  )  [inline]
 

Definition at line 40 of file program.h.

Referenced by TypeCheckerVisitor::visitProgram(), JavaCodeGeneratorVisitor::visitProgram(), and CCodeGeneratorVisitor::visitProgram().

00040                                       {
00041                         return this->message;
00042                 }

Process* Program::getProcess  )  [inline]
 

Definition at line 44 of file program.h.

Referenced by TypeCheckerVisitor::visitProgram().

00044                                       {
00045                         return this->process;
00046                 }

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

Reimplemented from Ast.

Definition at line 5 of file program.cpp.

References behavior, Ast::clone(), import, message, Ast::operator=(), and process.

00005                                         {
00006         const Program& program = dynamic_cast<const Program&>(ast);
00007 
00008         Ast::operator=(ast);
00009         this->import = program.import ? dynamic_cast<Import*>(&(program.import->clone())) : 0;
00010         this->behavior = program.behavior ? dynamic_cast<Behavior*>(&(program.behavior->clone())) : 0;
00011         this->message = program.message ? dynamic_cast<Message*>(&(program.message->clone())) : 0;
00012         this->process = program.process ? dynamic_cast<Process*>(&(program.process->clone())) : 0;
00013 
00014         return *(this);
00015 }

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

Reimplemented from Ast.

Definition at line 17 of file program.cpp.

References behavior, import, message, and process.

00017                                                {
00018         bool result = false;
00019         const Program& program = dynamic_cast<const Program&>(ast);
00020 
00021         if (typeid(ast) != typeid(Program))
00022                 return false;
00023 
00024         if (this->import && this->behavior && this->message && this->process)
00025                 result = (*(this->import) == *(program.import) &&
00026                                    *(this->behavior) == *(program.behavior) &&
00027                                    *(this->message) == *(program.message) &&
00028                                    *(this->process) == *(program.process));
00029 
00030         return result;
00031 }

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

Implements Ast.

Definition at line 51 of file program.h.

References Visitor::visitProgram().

00051                                                                {
00052                         return visitor.visitProgram(this);
00053                 }


Member Data Documentation

Behavior* Program::behavior [private]
 

Definition at line 13 of file program.h.

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

Import* Program::import [private]
 

Definition at line 12 of file program.h.

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

Message* Program::message [private]
 

Definition at line 14 of file program.h.

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

Process* Program::process [private]
 

Definition at line 15 of file program.h.

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


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