NLAISCRIPT::CBagOfCode Class Reference

#include <codage.h>


Detailed Description

Class CBagOfCode.

Define a container for the op-code produced from the parser.

A container of code is define by a op-code pointer and a list of constraine that needs the index range of the op-code in the CCodeBrancheRun class, where CCodeBrancheRun is the op-code container.

Author:
Chafik sameh

Nevrax France

Date:
2000

Definition at line 442 of file codage.h.

Public Member Functions

void addConstraint (CBagOfCode *b)
 allow us to add the all constraint in a bag.

void addConstraint (IConstraint *c)
 allow us to add a constraint in the bag.

 CBagOfCode (IOpCode *opcode)
 operator IOpCode * () const
 That is the only way to have the op-code contened.

void setCode (IOpCode *op)
 That is the only way to set the op-code in container.

void setConstraintIndex (int i, CCodeBrancheRun *c)
 ~CBagOfCode ()

Private Attributes

std::list< IConstraint * > _Constraint
IOpCode_Opcode


Constructor & Destructor Documentation

NLAISCRIPT::CBagOfCode::CBagOfCode IOpCode opcode  )  [inline]
 

Definition at line 449 of file codage.h.

00449                                            :_Opcode(opcode)
00450                 {
00451                         
00452                 }

NLAISCRIPT::CBagOfCode::~CBagOfCode  )  [inline]
 

Definition at line 486 of file codage.h.

00486 {}


Member Function Documentation

void NLAISCRIPT::CBagOfCode::addConstraint CBagOfCode b  )  [inline]
 

allow us to add the all constraint in a bag.

Definition at line 473 of file codage.h.

References _Constraint.

00474                 {       
00475                         std::list<IConstraint *>::iterator it = b->_Constraint.begin();
00476                         while(it != b->_Constraint.end())
00477                         {                               
00478                                 _Constraint.push_back(*it++);
00479                         }                       
00480                 }

void NLAISCRIPT::CBagOfCode::addConstraint IConstraint c  )  [inline]
 

allow us to add a constraint in the bag.

Definition at line 467 of file codage.h.

Referenced by NLAISCRIPT::CCompilateur::affectation(), NLAISCRIPT::CCompilateur::allocExpression(), NLAISCRIPT::CCompilateur::buildObject(), and NLAISCRIPT::CCompilateur::callFunction().

00468                 {                       
00469                         _Constraint.push_back(c);
00470                 }

NLAISCRIPT::CBagOfCode::operator IOpCode *  )  const [inline]
 

That is the only way to have the op-code contened.

Definition at line 455 of file codage.h.

00456                 {
00457                         return _Opcode;
00458                 }

void NLAISCRIPT::CBagOfCode::setCode IOpCode op  )  [inline]
 

That is the only way to set the op-code in container.

Definition at line 461 of file codage.h.

00462                 {
00463                         _Opcode = op;   
00464                 }

void NLAISCRIPT::CBagOfCode::setConstraintIndex int  i,
CCodeBrancheRun c
 

setConstraintIndex method transmit to them constraint the index range of op-code and the base pointer of where they are. Not that the base pointer is a CCodeBrancheRun and when it's built an index range is creat for each of op-code in the container at this moment setConstraintIndex we can call the copnstraints.

Definition at line 236 of file codage.cpp.

References _Constraint.

00237         {
00238                 std::list<IConstraint *>::iterator it = _Constraint.begin();
00239                 while(it != _Constraint.end())
00240                 {
00241                         (*it++)->addIndex(i,c);
00242                 }
00243         }


Field Documentation

std::list<IConstraint *> NLAISCRIPT::CBagOfCode::_Constraint [private]
 

Definition at line 446 of file codage.h.

Referenced by addConstraint(), and setConstraintIndex().

IOpCode* NLAISCRIPT::CBagOfCode::_Opcode [private]
 

Definition at line 445 of file codage.h.


The documentation for this class was generated from the following files:
Generated on Tue Mar 16 11:17:51 2004 for NeL by doxygen 1.3.6