// Class Name: outcome // // Purpose: // // An outcome is one possible path on which data can flow out of an // operation. When the conditions of the outcome are met by the operands // applied to the operation, then the result of the operation is fired down // the outcome's path. Only one outcome may fire after an operation is // applied. #ifndef OUTCOME_CLASS #define OUTCOME_CLASS #include "characteristic_predicate.h" //#include "zeno_tree.h" //#include "strings.h" class outcome : public characteristic_predicate { public: outcome(); ~outcome(); // well_formed: returns TRUE if this outcome is well-formed, which is // currently understood as meaning: // 1) outcome has an expression in the characteristic predicate, int well_formed() const; // pack: returns a packed form of the outcome. // virtual byte *pack(int &size) const; // this recreates the outcome from a packed form. // friend outcome *outcome_unpack(byte *packed_form); void print() const; private: // zeno_tree *preconditions; }; #endif