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

BehaviorStatement Class Reference

#include <behaviorstatement.h>

Inheritance diagram for BehaviorStatement:

Inheritance graph
[legend]
Collaboration diagram for BehaviorStatement:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 BehaviorStatement (SrcPosition *position, Identifier *behavior, Identifier *function, ExpressionList *expressionList)
 BehaviorStatement (const BehaviorStatement &behaviorStatement)
virtual ~BehaviorStatement ()
ExpressionListgetExpressionList ()
IdentifiergetBehavior ()
IdentifiergetFunction ()
virtual Astoperator= (const Ast &ast)
virtual bool operator== (const Ast &ast) const
virtual VisitorReturnvisit (Visitor &visitor)
virtual Astclone () const

Private Attributes

Identifierbehavior
Identifierfunction
ExpressionListexpressionList

Constructor & Destructor Documentation

BehaviorStatement::BehaviorStatement SrcPosition position,
Identifier behavior,
Identifier function,
ExpressionList expressionList
[inline]
 

Definition at line 15 of file behaviorstatement.h.

Referenced by clone().

00016                                 : SimpleStatement(position), behavior(behavior), function(function), expressionList(expressionList) {}

BehaviorStatement::BehaviorStatement const BehaviorStatement &  behaviorStatement  )  [inline]
 

Definition at line 18 of file behaviorstatement.h.

References Ast::position.

00018                                                                               : SimpleStatement(behaviorStatement.position) {
00019                         *(this) = behaviorStatement;
00020                 }

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

Definition at line 22 of file behaviorstatement.h.

00022                                              {
00023                         delete this->expressionList;
00024                 }


Member Function Documentation

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

Implements Ast.

Definition at line 45 of file behaviorstatement.h.

References BehaviorStatement(), Ast::clone(), and Identifier::clone().

00045                                            {
00046                         return *(new BehaviorStatement(new SrcPosition(*(this->position)),
00047                                          this->behavior ? dynamic_cast<Identifier*>(&(this->behavior->clone())) : 0,
00048                                          this->function ? dynamic_cast<Identifier*>(&(this->function->clone())) : 0,
00049                                          this->expressionList ? dynamic_cast<ExpressionList*>(&(this->expressionList->clone())) : 0));
00050                 }

Identifier* BehaviorStatement::getBehavior  )  [inline]
 

Definition at line 30 of file behaviorstatement.h.

Referenced by TypeCheckerVisitor::visitBehaviorStatement().

00030                                           {
00031                         return this->behavior;
00032                 }

ExpressionList* BehaviorStatement::getExpressionList  )  [inline]
 

Definition at line 26 of file behaviorstatement.h.

Referenced by TypeCheckerVisitor::visitBehaviorStatement().

00026                                                     {
00027                         return this->expressionList;
00028                 }

Identifier* BehaviorStatement::getFunction  )  [inline]
 

Definition at line 34 of file behaviorstatement.h.

00034                                           {
00035                         return this->function;
00036                 }

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

Reimplemented from SimpleStatement.

Definition at line 5 of file behaviorstatement.cpp.

References behavior, Ast::clone(), Identifier::clone(), expressionList, function, and Ast::operator=().

00005                                                   {
00006         const BehaviorStatement& behaviorStatement = dynamic_cast<const BehaviorStatement&>(ast);
00007 
00008         Ast::operator=(ast);
00009         this->behavior = behaviorStatement.behavior ? dynamic_cast<Identifier*>(&(behaviorStatement.behavior->clone())) : 0;
00010         this->function = behaviorStatement.function ? dynamic_cast<Identifier*>(&(behaviorStatement.function->clone())) : 0;
00011         this->expressionList = behaviorStatement.expressionList ? dynamic_cast<ExpressionList*>(&(behaviorStatement.expressionList->clone())) : 0;
00012 
00013         return *(this);
00014 }

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

Reimplemented from SimpleStatement.

Definition at line 16 of file behaviorstatement.cpp.

References behavior, expressionList, and function.

00016                                                          {
00017         bool result = false;
00018         const BehaviorStatement& behaviorStatement = dynamic_cast<const BehaviorStatement&>(ast);
00019 
00020         if (typeid(ast) != typeid(BehaviorStatement))
00021                 return false;
00022 
00023         if (this->expressionList && this->behavior && this->function)
00024                 result = (*(this->expressionList) == *(behaviorStatement.expressionList) &&
00025                                   *(this->behavior) == *(behaviorStatement.behavior) &&
00026                                   *(this->function) == *(behaviorStatement.function));
00027 
00028         return result;
00029 }

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

Implements Ast.

Definition at line 41 of file behaviorstatement.h.

References Visitor::visitBehaviorStatement().

00041                                                                {
00042                         return visitor.visitBehaviorStatement(this);
00043                 }


Member Data Documentation

Identifier* BehaviorStatement::behavior [private]
 

Definition at line 10 of file behaviorstatement.h.

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

ExpressionList* BehaviorStatement::expressionList [private]
 

Definition at line 12 of file behaviorstatement.h.

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

Identifier* BehaviorStatement::function [private]
 

Definition at line 11 of file behaviorstatement.h.

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


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