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

expression.cpp File Reference

#include <celscript/expression.h>
#include <celscript/function.h>

Include dependency graph for expression.cpp:

Go to the source code of this file.

Typedefs

typedef Value() BinaryOperatorFunc (const Value &, const Value &)
typedef Value() UnaryOperatorFunc (const Value &)

Functions

Value AddFunc (const Value &a, const Value &b)
Value DivideFunc (const Value &a, const Value &b)
Value EqualFunc (const Value &a, const Value &b)
Value GreaterEqualFunc (const Value &a, const Value &b)
Value GreaterFunc (const Value &a, const Value &b)
Value LesserEqualFunc (const Value &a, const Value &b)
Value LesserFunc (const Value &a, const Value &b)
Value LogicalNotFunc (const Value &v)
Value MultiplyFunc (const Value &a, const Value &b)
Value NegateFunc (const Value &v)
Value NotEqualFunc (const Value &a, const Value &b)
Value SubtractFunc (const Value &a, const Value &b)

Variables

static BinaryOperatorFunc AddFunc
static BinaryOperatorFuncBinaryOperatorFunctions [BinaryExpression::OperatorCount]
static BinaryOperatorFunc DivideFunc
static BinaryOperatorFunc EqualFunc
static Value ErrorValue = Value()
static BinaryOperatorFunc GreaterEqualFunc
static BinaryOperatorFunc GreaterFunc
static BinaryOperatorFunc LesserEqualFunc
static BinaryOperatorFunc LesserFunc
static UnaryOperatorFunc LogicalNotFunc
static BinaryOperatorFunc MultiplyFunc
static UnaryOperatorFunc NegateFunc
static BinaryOperatorFunc NotEqualFunc
static BinaryOperatorFunc SubtractFunc
static UnaryOperatorFuncUnaryOperatorFunctions [UnaryExpression::OperatorCount]


Typedef Documentation

typedef Value() BinaryOperatorFunc(const Value &, const Value &)
 

Definition at line 17 of file expression.cpp.

typedef Value() UnaryOperatorFunc(const Value &)
 

Definition at line 18 of file expression.cpp.


Function Documentation

Value AddFunc const Value a,
const Value b
 

Definition at line 252 of file expression.cpp.

References ErrorValue, celx::NumberType, and celx::Value::numberValue().

00253 {
00254     if (a.getType() == NumberType && b.getType() == NumberType)
00255     {
00256         double x0 = 0.0;
00257         double x1 = 0.0;
00258         a.numberValue(x0);
00259         b.numberValue(x1);
00260         return Value(x0 + x1);
00261     }
00262     else
00263     {
00264         return ErrorValue;
00265     }
00266 }

Value DivideFunc const Value a,
const Value b
 

Definition at line 300 of file expression.cpp.

References ErrorValue, celx::NumberType, and celx::Value::numberValue().

00301 {
00302     if (a.getType() == NumberType && b.getType() == NumberType)
00303     {
00304         double x0 = 0.0;
00305         double x1 = 0.0;
00306         a.numberValue(x0);
00307         b.numberValue(x1);
00308         return Value(x0 / x1);
00309     }
00310     else
00311     {
00312         return ErrorValue;
00313     }
00314 }

Value EqualFunc const Value a,
const Value b
 

Definition at line 317 of file expression.cpp.

00318 {
00319     return Value(a == b);
00320 }

Value GreaterEqualFunc const Value a,
const Value b
 

Definition at line 347 of file expression.cpp.

00348 {
00349     return Value(a.toNumber() >= b.toNumber());
00350 }

Value GreaterFunc const Value a,
const Value b
 

Definition at line 335 of file expression.cpp.

00336 {
00337     return Value(a.toNumber() > b.toNumber());
00338 }

Value LesserEqualFunc const Value a,
const Value b
 

Definition at line 341 of file expression.cpp.

00342 {
00343     return Value(a.toNumber() <= b.toNumber());
00344 }

Value LesserFunc const Value a,
const Value b
 

Definition at line 329 of file expression.cpp.

00330 {
00331     return Value(a.toNumber() < b.toNumber());
00332 }

Value LogicalNotFunc const Value v  ) 
 

Definition at line 359 of file expression.cpp.

00360 {
00361     return Value(!v.toBoolean());
00362 }

Value MultiplyFunc const Value a,
const Value b
 

Definition at line 284 of file expression.cpp.

References ErrorValue, celx::NumberType, and celx::Value::numberValue().

00285 {
00286     if (a.getType() == NumberType && b.getType() == NumberType)
00287     {
00288         double x0 = 0.0;
00289         double x1 = 0.0;
00290         a.numberValue(x0);
00291         b.numberValue(x1);
00292         return Value(x0 * x1);
00293     }
00294     else
00295     {
00296         return ErrorValue;
00297     }
00298 }

Value NegateFunc const Value v  ) 
 

Definition at line 354 of file expression.cpp.

00355 {
00356     return Value(-v.toNumber());
00357 }

Value NotEqualFunc const Value a,
const Value b
 

Definition at line 323 of file expression.cpp.

00324 {
00325     return Value(a != b);
00326 }

Value SubtractFunc const Value a,
const Value b
 

Definition at line 268 of file expression.cpp.

References ErrorValue, celx::NumberType, and celx::Value::numberValue().

00269 {
00270     if (a.getType() == NumberType && b.getType() == NumberType)
00271     {
00272         double x0 = 0.0;
00273         double x1 = 0.0;
00274         a.numberValue(x0);
00275         b.numberValue(x1);
00276         return Value(x0 - x1);
00277     }
00278     else
00279     {
00280         return ErrorValue;
00281     }
00282 }


Variable Documentation

BinaryOperatorFunc AddFunc [static]
 

Definition at line 20 of file expression.cpp.

BinaryOperatorFunc* BinaryOperatorFunctions[BinaryExpression::OperatorCount] [static]
 

Initial value:

Definition at line 34 of file expression.cpp.

Referenced by celx::BinaryExpression::eval().

BinaryOperatorFunc DivideFunc [static]
 

Definition at line 23 of file expression.cpp.

BinaryOperatorFunc EqualFunc [static]
 

Definition at line 24 of file expression.cpp.

Value ErrorValue = Value() [static]
 

Definition at line 31 of file expression.cpp.

Referenced by AddFunc(), DivideFunc(), MultiplyFunc(), and SubtractFunc().

BinaryOperatorFunc GreaterEqualFunc [static]
 

Definition at line 29 of file expression.cpp.

BinaryOperatorFunc GreaterFunc [static]
 

Definition at line 27 of file expression.cpp.

BinaryOperatorFunc LesserEqualFunc [static]
 

Definition at line 28 of file expression.cpp.

BinaryOperatorFunc LesserFunc [static]
 

Definition at line 26 of file expression.cpp.

UnaryOperatorFunc LogicalNotFunc [static]
 

Definition at line 51 of file expression.cpp.

BinaryOperatorFunc MultiplyFunc [static]
 

Definition at line 22 of file expression.cpp.

UnaryOperatorFunc NegateFunc [static]
 

Definition at line 50 of file expression.cpp.

BinaryOperatorFunc NotEqualFunc [static]
 

Definition at line 25 of file expression.cpp.

BinaryOperatorFunc SubtractFunc [static]
 

Definition at line 21 of file expression.cpp.

UnaryOperatorFunc* UnaryOperatorFunctions[UnaryExpression::OperatorCount] [static]
 

Initial value:

Definition at line 52 of file expression.cpp.

Referenced by celx::UnaryExpression::eval().


Generated on Sat Jan 14 22:32:52 2006 for Celestia by  doxygen 1.4.1