00001
00002
00003
00004
00005
00006
00007
00008 #ifndef SAIL_LABEL_H_
00009 #define SAIL_LABEL_H_
00010 #include "Instruction.h"
00011
00012 namespace il{class node;}
00013
00014 #include<string>
00015 using namespace std;
00016
00017 namespace sail {
00018 class Label;
00019
00023 class Label: public Instruction {
00024 friend class boost::serialization::access;
00025
00026 template<class Archive>
00027 void serialize(Archive & ar, const unsigned int version)
00028 {
00029 ar & boost::serialization::base_object<sail::Instruction>(*this);
00030 ar & label_name;
00031 }
00032 private:
00033 string label_name;
00034
00035
00036 public:
00037 Label(string label_name, il::node* original);
00038 Label(){};
00039 virtual string to_string() const;
00040 virtual string to_string(bool pretty_print) const;
00041 string get_label_name();
00042 virtual bool is_removable();
00043 virtual ~Label();
00044 };
00045
00046 }
00047
00048 #endif