00001 #ifndef TRANSLATION_UNIT_H_
00002 #define TRANSLATION_UNIT_H_
00003
00004
00005 #include <map>
00006 using namespace std;
00007
00008 #include <boost/serialization/vector.hpp>
00009 #include <boost/serialization/map.hpp>
00010 #include <boost/serialization/set.hpp>
00011 #include <boost/serialization/list.hpp>
00012 #include <boost/serialization/string.hpp>
00013 #include <boost/serialization/version.hpp>
00014 #include <boost/serialization/split_member.hpp>
00015 #include <boost/serialization/shared_ptr.hpp>
00016 #include <boost/serialization/base_object.hpp>
00017 #include <boost/serialization/export.hpp>
00018
00019
00020 namespace il
00021 {
00022 class file;
00023
00027 class translation_unit
00028 {
00029 friend class boost::serialization::access;
00030
00031 template<class Archive>
00032 void serialize(Archive & ar, const unsigned int version)
00033 {
00034 ar & files;
00035 }
00036 private:
00037 map<string, file*> files;
00038 public:
00039 translation_unit();
00040 virtual ~translation_unit();
00041 map<string, file*> & get_files();
00042 file *get_file_from_name(string name);
00043 virtual string to_string() const;
00044 };
00045
00046 }
00047
00048 #endif