Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

celx::WhileStatement Class Reference

#include <statement.h>

Inheritance diagram for celx::WhileStatement:

Inheritance graph
Collaboration diagram for celx::WhileStatement:

Collaboration graph
List of all members.

Public Member Functions

virtual Control execute (ExecutionContext &)
 WhileStatement (Expression *, Statement *)
virtual ~WhileStatement ()

Private Attributes

Statementbody
Expressioncondition

Constructor & Destructor Documentation

WhileStatement::WhileStatement Expression ,
Statement
 

Definition at line 145 of file statement.cpp.

00145                                                                   :
00146     condition(_cond), body(_body)
00147 {
00148 }

WhileStatement::~WhileStatement  )  [virtual]
 

Definition at line 150 of file statement.cpp.

00151 {
00152 }


Member Function Documentation

Statement::Control WhileStatement::execute ExecutionContext  )  [virtual]
 

Reimplemented from celx::Statement.

Definition at line 154 of file statement.cpp.

References body, condition, celx::Expression::eval(), celx::Statement::execute(), and celx::Value::toBoolean().

00155 {
00156     Control control = ControlAdvance;
00157     while (condition->eval(context).toBoolean())
00158     {
00159         control = body->execute(context);
00160         if (control == ControlReturn || control == ControlBreak)
00161             break;
00162     }
00163 
00164     if (control == ControlReturn)
00165         return ControlReturn;
00166     else
00167         return ControlAdvance;
00168 }


Member Data Documentation

Statement* celx::WhileStatement::body [private]
 

Definition at line 125 of file statement.h.

Referenced by execute().

Expression* celx::WhileStatement::condition [private]
 

Definition at line 124 of file statement.h.

Referenced by execute().


The documentation for this class was generated from the following files:
Generated on Sat Jan 14 22:33:46 2006 for Celestia by  doxygen 1.4.1