00001
00004 #ifndef DIVINE_BYMOC_EXPRESSION_HH
00005 #define DIVINE_BYMOC_EXPRESSION_HH
00006
00007 #ifndef DOXYGEN_PROCESSING
00008 #include <iostream>
00009 #include <string>
00010 #include <stack>
00011 #include "system/expression.hh"
00012 #include "common/error.hh"
00013 #include "common/types.hh"
00014 #include "common/array.hh"
00015
00016 namespace divine {
00017 using std::cerr; using std::endl;
00018 #endif //DOXYGEN_PROCESSING
00019
00020 class bymoc_system_t;
00021
00023
00026 class bymoc_expression_t: public expression_t
00027 {
00028 public:
00031 virtual void swap(expression_t & expr);
00033 virtual void assign(const expression_t & expr);
00034
00035
00037 virtual std::string to_string() const;
00039 virtual int from_string(std::string & expr_str,
00040 const size_int_t process_gid = NO_ID);
00042 virtual void write(std::ostream & ostr) const;
00044 virtual int read(std::istream & istr, size_int_t process_gid = NO_ID);
00046 virtual ~bymoc_expression_t();
00047
00048
00049 bymoc_expression_t(system_t * const system = 0): expression_t(system) { }
00050 };
00051
00052 #ifndef DOXYGEN_PROCESSING
00053 }
00054
00055 #endif //DOXYGEN_PROCESSING
00056
00057 #endif
00058