00001 #ifndef WHILE_LOOP_H_
00002 #define WHILE_LOOP_H_
00003 
00004 #include "control_statement.h"
00005 
00006 
00007 namespace il
00008 {
00009 
00017 class while_loop : public il::control_statement
00018 {
00019     friend class boost::serialization::access;
00020 
00021     template<class Archive>
00022     void serialize(Archive & ar, const unsigned int version)
00023     {
00024         ar & boost::serialization::base_object<il::control_statement>(*this);
00025         ar & continue_cond;
00026         ar & body;
00027     }
00028 private:
00029         expression* continue_cond;
00030         statement* body;
00031 
00032 public:
00033         while_loop();
00034         while_loop(expression* continue_cond, statement* body);
00035         expression* get_continuation_cond();
00036         statement* get_body();
00037         void print();
00038         virtual ~while_loop();
00039 };
00040 
00041 }
00042 
00043 #endif