00001
00002
00003 #ifndef ASSIGN_STATEMENT_H
00004 #define ASSIGN_STATEMENT_H
00005
00006 #include "Statement.h"
00007 #include "SimpleExpr.h"
00008 #include "Expr.h"
00009
00010 #include "Serializable.h"
00011
00012
00013 class SimpleExpr;
00014 class Expr;
00015
00024 class AssignStatement : public Statement
00025 {
00026 public:
00031 void process(CliArgList *loop_vars);
00032
00035 AssignStatement(const char * variablename, Expr *rhs);
00036
00038 virtual ~AssignStatement();
00039
00040 private:
00042 std::string variablename;
00044 Expr * rhs;
00045
00046
00047 protected:
00048 AssignStatement() {}
00049 private:
00050 friend class boost::serialization::access;
00051 template<class Archive>
00052 void serialize(Archive & ar, const unsigned int version) {
00053 this->pre_serialize(ar, version);
00054 try {
00055 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Statement);
00056 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00057 }
00058 try {
00059 ar & BOOST_SERIALIZATION_NVP(variablename);
00060 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00061 }
00062 try {
00063 ar & BOOST_SERIALIZATION_NVP(rhs);
00064 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00065 }
00066 this->post_serialize(ar, version);
00067 }
00068
00069 };
00070
00071 BIE_CLASS_TYPE_INFO(AssignStatement)
00072 BIE_CLASS_EXPORT_KEY(AssignStatement)
00073 #endif