00001 #ifndef STATEMENT_H_
00002 #define STATEMENT_H_
00003
00004 #include "node.h"
00005 #include <assert.h>
00006
00007 namespace il
00008 {
00009
00010 class statement : public il::node
00011 {
00012 friend class boost::serialization::access;
00013
00014 template<class Archive>
00015 void serialize(Archive & ar, const unsigned int version)
00016 {
00017 ar & boost::serialization::base_object<il::node>(*this);
00018 }
00019 public:
00020 friend ostream& operator <<(ostream &os, const statement *obj);
00021 virtual string to_string() const = 0;
00022 statement();
00023 virtual void assert_statement();
00024 virtual ~statement();
00025 };
00026
00027 }
00028
00029 #endif