00001 #ifndef DO_WHILE_LOOP_H_
00002 #define DO_WHILE_LOOP_H_
00003
00004 #include "control_statement.h"
00005
00006
00007 using namespace std;
00008
00009
00010 #include "do_while_loop.h"
00011 #include <assert.h>
00012
00013 namespace il
00014 {
00015 class expression;
00016 class statement;
00017
00026 class do_while_loop : public il::control_statement
00027 {
00028 friend class boost::serialization::access;
00029
00030 template<class Archive>
00031 void serialize(Archive & ar, const unsigned int version)
00032 {
00033 ar & boost::serialization::base_object<il::control_statement>(*this);
00034 ar & continue_cond;
00035 ar & body;
00036 }
00037
00038 private:
00039 expression* continue_cond;
00040 statement* body;
00041 public:
00042 do_while_loop();
00043 do_while_loop(expression* continue_cond, statement* body);
00044 expression* get_continuation_cond();
00045 statement* get_body();
00046 void print();
00047 virtual ~do_while_loop();
00048 };
00049
00050 }
00051
00052 #endif