00001 /* 00002 * sail-serialization.h 00003 * 00004 * Created on: Apr 10, 2010 00005 * Author: tdillig 00006 */ 00007 00008 #ifndef SAILSERIALIZATION_H_ 00009 #define SAILSERIALIZATION_H_ 00010 00011 #include "il/il.h" 00012 #include "sail/sail.h" 00013 00014 00015 /* 00016 * Archive type used for boost serialization 00017 */ 00018 #define IN_ARCHIEVE boost::archive::text_iarchive 00019 #define OUT_ARCHIEVE boost::archive::text_oarchive 00020 00021 BOOST_CLASS_EXPORT(Serializable); 00022 00023 00024 BOOST_CLASS_EXPORT(il::type); 00025 BOOST_CLASS_EXPORT(il::pointer_type); 00026 BOOST_CLASS_EXPORT(il::array_type); 00027 BOOST_CLASS_EXPORT(il::constarray_type); 00028 BOOST_CLASS_EXPORT(il::vararray_type); 00029 BOOST_CLASS_EXPORT(il::enum_info); 00030 BOOST_CLASS_EXPORT(il::enum_type); 00031 BOOST_CLASS_EXPORT(il::record_info); 00032 BOOST_CLASS_EXPORT(il::record_type); 00033 BOOST_CLASS_EXPORT(il::vector_type); 00034 BOOST_CLASS_EXPORT(il::complex_type); 00035 BOOST_CLASS_EXPORT(il::function_type); 00036 BOOST_CLASS_EXPORT(il::base_type); 00037 BOOST_CLASS_EXPORT(il::addressof_expression); 00038 BOOST_CLASS_EXPORT(il::array_ref_expression); 00039 BOOST_CLASS_EXPORT(il::assembly); 00040 BOOST_CLASS_EXPORT(il::binop_expression); 00041 BOOST_CLASS_EXPORT(il::block_expression); 00042 BOOST_CLASS_EXPORT(il::block); 00043 BOOST_CLASS_EXPORT(il::break_statement); 00044 BOOST_CLASS_EXPORT(il::builtin_expression); 00045 BOOST_CLASS_EXPORT(il::case_label); 00046 BOOST_CLASS_EXPORT(il::cast_expression); 00047 BOOST_CLASS_EXPORT(il::complex_const_exp); 00048 BOOST_CLASS_EXPORT(il::conditional_expression); 00049 BOOST_CLASS_EXPORT(il::const_expression); 00050 BOOST_CLASS_EXPORT(il::control_statement); 00051 BOOST_CLASS_EXPORT(il::declaration); 00052 BOOST_CLASS_EXPORT(il::deref_expression); 00053 BOOST_CLASS_EXPORT(il::expr_list_expression); 00054 BOOST_CLASS_EXPORT(il::expression); 00055 BOOST_CLASS_EXPORT(il::expression_instruction); 00056 BOOST_CLASS_EXPORT(il::field_ref_expression); 00057 BOOST_CLASS_EXPORT(il::file); 00058 BOOST_CLASS_EXPORT(il::fixed_const_exp); 00059 BOOST_CLASS_EXPORT(il::function_address_expression); 00060 BOOST_CLASS_EXPORT(il::function_call_expression); 00061 BOOST_CLASS_EXPORT(il::function_declaration); 00062 BOOST_CLASS_EXPORT(il::function_pointer_call_expression); 00063 BOOST_CLASS_EXPORT(il::goto_statement); 00064 BOOST_CLASS_EXPORT(il::if_statement); 00065 BOOST_CLASS_EXPORT(il::initializer_list_expression); 00066 BOOST_CLASS_EXPORT(il::instruction); 00067 BOOST_CLASS_EXPORT(il::integer_const_exp); 00068 BOOST_CLASS_EXPORT(il::label); 00069 BOOST_CLASS_EXPORT(il::location); 00070 BOOST_CLASS_EXPORT(il::modify_expression); 00071 BOOST_CLASS_EXPORT(il::namespace_context); 00072 BOOST_CLASS_EXPORT(il::node); 00073 BOOST_CLASS_EXPORT(il::noop_instruction); 00074 BOOST_CLASS_EXPORT(il::real_const_exp); 00075 BOOST_CLASS_EXPORT(il::return_statement); 00076 BOOST_CLASS_EXPORT(il::set_instruction); 00077 BOOST_CLASS_EXPORT(il::statement); 00078 BOOST_CLASS_EXPORT(il::string_const_exp); 00079 BOOST_CLASS_EXPORT(il::switch_statement); 00080 BOOST_CLASS_EXPORT(il::throw_expression); 00081 BOOST_CLASS_EXPORT(il::translation_unit); 00082 BOOST_CLASS_EXPORT(il::try_catch_statement); 00083 BOOST_CLASS_EXPORT(il::try_finally_statement); 00084 BOOST_CLASS_EXPORT(il::unop_expression); 00085 BOOST_CLASS_EXPORT(il::variable_declaration); 00086 BOOST_CLASS_EXPORT(il::variable); 00087 BOOST_CLASS_EXPORT(il::variable_expression); 00088 BOOST_CLASS_EXPORT(il::vector_const_exp); 00089 00090 BOOST_CLASS_EXPORT(sail::AddressLabel); 00091 BOOST_CLASS_EXPORT(sail::AddressString); 00092 BOOST_CLASS_EXPORT(sail::AddressVar); 00093 BOOST_CLASS_EXPORT(sail::ArrayRefRead); 00094 BOOST_CLASS_EXPORT(sail::ArrayRefWrite); 00095 BOOST_CLASS_EXPORT(sail::Assembly); 00096 BOOST_CLASS_EXPORT(sail::Assignment); 00097 BOOST_CLASS_EXPORT(sail::Assume); 00098 BOOST_CLASS_EXPORT(sail::AssumeSize); 00099 BOOST_CLASS_EXPORT(sail::BasicBlock); 00100 BOOST_CLASS_EXPORT(sail::Binop); 00101 BOOST_CLASS_EXPORT(sail::Block); 00102 BOOST_CLASS_EXPORT(sail::Branch); 00103 BOOST_CLASS_EXPORT(sail::Cast); 00104 BOOST_CLASS_EXPORT(sail::Cfg); 00105 BOOST_CLASS_EXPORT(sail::CfgEdge); 00106 BOOST_CLASS_EXPORT(sail::Symbol); 00107 BOOST_CLASS_EXPORT(sail::Constant); 00108 BOOST_CLASS_EXPORT(sail::DropVariable); 00109 BOOST_CLASS_EXPORT(sail::FieldRefRead); 00110 BOOST_CLASS_EXPORT(sail::FieldRefWrite); 00111 BOOST_CLASS_EXPORT(sail::Function); 00112 BOOST_CLASS_EXPORT(sail::FunctionCall); 00113 BOOST_CLASS_EXPORT(sail::FunctionPointerCall); 00114 BOOST_CLASS_EXPORT(sail::Instruction); 00115 BOOST_CLASS_EXPORT(sail::Jump); 00116 BOOST_CLASS_EXPORT(sail::Label); 00117 BOOST_CLASS_EXPORT(sail::Load); 00118 BOOST_CLASS_EXPORT(sail::LoopInvocationInstruction); 00119 BOOST_CLASS_EXPORT(sail::SaveInstruction); 00120 BOOST_CLASS_EXPORT(sail::StaticAssert); 00121 BOOST_CLASS_EXPORT(sail::Store); 00122 BOOST_CLASS_EXPORT(sail::SummaryUnit); 00123 BOOST_CLASS_EXPORT(sail::SuperBlock); 00124 00125 BOOST_CLASS_EXPORT(sail::TranslationUnit); 00126 BOOST_CLASS_EXPORT(sail::Unop); 00127 BOOST_CLASS_EXPORT(sail::Variable); 00128 00129 00130 #endif /* SAILSERIALIZATION_H_ */