00001 #include "../ECF_base.h"
00002 #include "Tree_c.h"
00003 #include <iostream>
00004
00005
00006 namespace Tree {
00007 namespace Primitives {
00008
00009 Primitive::Primitive()
00010 {
00011
00012 complementName_ = "";
00013 }
00014
00015
00016 Primitive::~Primitive()
00017 { }
00018
00019
00023 bool Primitive::initialize(StateP state)
00024 {
00025 state_ = state;
00026 return true;
00027 }
00028
00029
00036 PrimitiveP Primitive::assignToNode(PrimitiveP primitive)
00037 {
00038 return primitive;
00039 }
00040
00041
00042 void Primitive::setValue(void* value)
00043 {
00044 return;
00045 }
00046
00047
00048 void Primitive::getValue(void* value)
00049 {
00050 return;
00051 }
00052
00053
00060 PrimitiveP Primitive::copyWithNode(PrimitiveP primitive)
00061 {
00062 return primitive;
00063 }
00064
00065
00071 void Primitive::getNextArgument(void* result, Tree& tree)
00072 {
00073 tree.iNode_++;
00074 tree[tree.iNode_]->primitive_->execute(result, tree);
00075 }
00076
00077
00082 void Primitive::skipNextArgument(Tree& tree)
00083 {
00084 tree.iNode_ += tree[tree.iNode_ + 1]->size_;
00085 }
00086
00087
00091 int Primitive::getNumberOfArguments()
00092 {
00093 return nArguments_;
00094 }
00095
00096
00100 void Primitive::setName(std::string name)
00101 {
00102 name_ = name;
00103 }
00104
00105
00109 std::string Primitive::getName()
00110 {
00111 return name_;
00112 }
00113
00114
00118 std::string Primitive::getComplementName()
00119 {
00120 return complementName_;
00121 }
00122
00123 }
00124 }