Expression Class Reference

#include <value.h>

Inheritance diagram for Expression:

Value List of all members.

Public Member Functions

virtual Data getSaveDescription (QString prefix)
 Expression (QString op)
 Expression (Token data)
void add (Value *n)
int argc ()
QString op ()
Valueargv (int i)
virtual QString toString ()
virtual bool equals_same_type (Value *other)

Private Attributes

vector< Value * > values
QString operat

Detailed Description

Definition at line 37 of file value.h.


Constructor & Destructor Documentation

Expression::Expression QString  op  )  [inline]
 

Definition at line 44 of file value.h.

00044 : operat(op) {};

Expression::Expression Token  data  ) 
 

Definition at line 55 of file value.cpp.

References Value::load(), operat, and values.

00056 {
00057   operat = (String)data["operator"];
00058   Array<1,Data> arguments = data["values"];
00059   for(Array<1,Data>::ordered argument(arguments) ; argument.more() ; ++argument)
00060     values.push_back(Value::load(argument));
00061 }


Member Function Documentation

void Expression::add Value n  )  [inline]
 

Definition at line 46 of file value.h.

References values.

Referenced by ValueCopier::copyExpr(), and ParseText::parse().

00046 {values.push_back(n);};

int Expression::argc  )  [inline]
 

Definition at line 47 of file value.h.

References values.

Referenced by IisCell::apply(), ValueCopier::copyExpr(), IisCell::gather_inputs(), and Runtime::requires_user_input().

00047 {return values.size();}; 

Value* Expression::argv int  i  )  [inline]
 

Definition at line 49 of file value.h.

References values.

Referenced by IisCell::apply(), ValueCopier::copyExpr(), IisCell::gather_inputs(), and Runtime::requires_user_input().

00049 {return values[i];};

bool Expression::equals_same_type Value other  )  [virtual]
 

Implements Value.

Definition at line 32 of file value.cpp.

References Value::equals(), operat, and values.

00033 {
00034   Expression * o = (Expression*)other;
00035   if (o->operat!=operat) return false;
00036   if (values.size() != o->values.size()) return false;
00037   for(unsigned int i = 0 ; i < values.size() ; i++)
00038     if (!values[i]->equals(o->values[i])) 
00039       return false;
00040   return true;
00041 }

Data Expression::getSaveDescription QString  prefix  )  [virtual]
 

Implements Value.

Definition at line 43 of file value.cpp.

References operat, and values.

00044 {
00045   Token E;
00046   E["type"]=Symbol("expression");
00047   E["operator"]=String(operat);
00048   Array<1,Data> V(values.size());
00049   E["values"]=V;
00050   for(unsigned int i = 0 ; i < values.size() ; i++)
00051     V[i]=values[i]->getSaveDescription(prefix);
00052   return E;
00053 }

QString Expression::op  )  [inline]
 

Definition at line 48 of file value.h.

References operat.

Referenced by IisCell::apply(), ValueCopier::copyExpr(), and Runtime::requires_user_input().

00048 {return operat;};

QString Expression::toString  )  [virtual]
 

Implements Value.

Definition at line 20 of file value.cpp.

References operat, and values.

00021 {
00022   QString result("(");
00023   result+=operat;
00024   for(vector<Value*>::iterator it=values.begin(); it!=values.end() ; it++)
00025     {
00026       result+=" ";
00027       result+=(*it)->toString();
00028     }
00029   return result+")";
00030 }


Member Data Documentation

QString Expression::operat [private]
 

Definition at line 41 of file value.h.

Referenced by equals_same_type(), Expression(), getSaveDescription(), op(), and toString().

vector<Value*> Expression::values [private]
 

Definition at line 40 of file value.h.

Referenced by add(), argc(), argv(), equals_same_type(), Expression(), getSaveDescription(), and toString().


The documentation for this class was generated from the following files:
Generated on Mon Jun 5 22:08:43 2006 for iis by  doxygen 1.4.6