00001
00002
00003 #ifndef PRINT_STATEMENT_H
00004 #define PRINT_STATEMENT_H
00005
00006 #include "Statement.h"
00007 #include "Expr.h"
00008 #include "AData.h"
00009 #include "CliArgList.h"
00010
00011 #include "Serializable.h"
00012
00013
00014 class AData;
00015 class CliArgList;
00016
00022 class PrintStatement: public Statement
00023 {
00024 public:
00026 PrintStatement(Expr *rhs);
00027
00029 virtual ~PrintStatement();
00030
00034 void process(CliArgList *loop_vars);
00035
00036 private:
00038 Expr * rhs_;
00039
00040
00041 protected:
00042 PrintStatement() {}
00043 private:
00044 friend class boost::serialization::access;
00045 template<class Archive>
00046 void serialize(Archive & ar, const unsigned int version) {
00047 this->pre_serialize(ar, version);
00048 try {
00049 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Statement);
00050 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00051 }
00052 try {
00053 ar & BOOST_SERIALIZATION_NVP(rhs_);
00054 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00055 }
00056 this->post_serialize(ar, version);
00057 }
00058
00059 };
00060
00061 BIE_CLASS_TYPE_INFO(PrintStatement)
00062 BIE_CLASS_EXPORT_KEY(PrintStatement)
00063 #endif