00001
00002
00003 #ifndef FOR_STATEMENT_H
00004 #define FOR_STATEMENT_H
00005
00006 #include "Statement.h"
00007
00008 #include "Serializable.h"
00009
00010
00014 class ForStatement: public Statement
00015 {
00016 public:
00017
00019 ForStatement(char *var, int low, int high, Statement *for_stmt);
00020
00022 ~ForStatement();
00023
00025 void process(CliArgList *loop_vars);
00026
00027 private:
00028 int low, high;
00029 std::string var_name;
00030 Statement * for_stmt;
00031
00032
00033 protected:
00034 ForStatement() {}
00035 private:
00036 friend class boost::serialization::access;
00037 template<class Archive>
00038 void serialize(Archive & ar, const unsigned int version) {
00039 this->pre_serialize(ar, version);
00040 try {
00041 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Statement);
00042 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00043 }
00044 try {
00045 ar & BOOST_SERIALIZATION_NVP(low);
00046 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00047 }
00048 try {
00049 ar & BOOST_SERIALIZATION_NVP(high);
00050 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00051 }
00052 try {
00053 ar & BOOST_SERIALIZATION_NVP(var_name);
00054 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00055 }
00056 try {
00057 ar & BOOST_SERIALIZATION_NVP(for_stmt);
00058 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00059 }
00060 this->post_serialize(ar, version);
00061 }
00062
00063 };
00064
00065 BIE_CLASS_TYPE_INFO(ForStatement)
00066 BIE_CLASS_EXPORT_KEY(ForStatement)
00067 #endif