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

celx::BinaryExpression Class Reference

#include <expression.h>

Inheritance diagram for celx::BinaryExpression:

Inheritance graph
Collaboration diagram for celx::BinaryExpression:

Collaboration graph
List of all members.

Public Types

enum  Operator {
  Add = 0, Subtract = 1, Multiply = 2, Divide = 3,
  Equal = 4, NotEqual = 5, Lesser = 6, Greater = 7,
  LesserEqual = 8, GreaterEqual = 9, InvalidOp = 10, OperatorCount = 11
}

Public Member Functions

 BinaryExpression (Operator, Expression *, Expression *)
virtual Value eval (ExecutionContext &)
virtual ~BinaryExpression ()

Private Attributes

Expressionleft
const Operator op
Expressionright

Member Enumeration Documentation

enum celx::BinaryExpression::Operator
 

Enumeration values:
Add 
Subtract 
Multiply 
Divide 
Equal 
NotEqual 
Lesser 
Greater 
LesserEqual 
GreaterEqual 
InvalidOp 
OperatorCount 

Definition at line 37 of file expression.h.

00038     {
00039         Add           =  0,
00040         Subtract      =  1,
00041         Multiply      =  2,
00042         Divide        =  3,
00043         Equal         =  4,
00044         NotEqual      =  5,
00045         Lesser        =  6,
00046         Greater       =  7,
00047         LesserEqual   =  8,
00048         GreaterEqual  =  9,
00049         InvalidOp     = 10,
00050         OperatorCount = 11,
00051     };


Constructor & Destructor Documentation

BinaryExpression::BinaryExpression Operator  ,
Expression ,
Expression
 

Definition at line 79 of file expression.cpp.

00081                                                        :
00082     op(_op),
00083     left(_left),
00084     right(_right)
00085 {
00086 }

BinaryExpression::~BinaryExpression  )  [virtual]
 

Definition at line 88 of file expression.cpp.

References left, and right.

00089 {
00090     if (left != NULL)
00091         delete left;
00092     if (right != NULL)
00093         delete right;
00094 }


Member Function Documentation

Value BinaryExpression::eval ExecutionContext  )  [virtual]
 

Implements celx::Expression.

Definition at line 96 of file expression.cpp.

References BinaryOperatorFunctions, celx::Expression::eval(), left, op, and right.

00097 {
00098     Value a = left->eval(context);
00099     Value b = right->eval(context);
00100     return BinaryOperatorFunctions[op](a, b);
00101 }


Member Data Documentation

Expression* celx::BinaryExpression::left [private]
 

Definition at line 59 of file expression.h.

Referenced by eval(), and ~BinaryExpression().

const Operator celx::BinaryExpression::op [private]
 

Definition at line 58 of file expression.h.

Referenced by eval().

Expression* celx::BinaryExpression::right [private]
 

Definition at line 60 of file expression.h.

Referenced by eval(), and ~BinaryExpression().


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