#ifndef __SAS__OPERATOR_H #define __SAS__OPERATOR_H #include #include #include #include #include #include namespace plasp { namespace sas { //////////////////////////////////////////////////////////////////////////////////////////////////// // // Operator // //////////////////////////////////////////////////////////////////////////////////////////////////// class Operator; using Operators = std::vector; //////////////////////////////////////////////////////////////////////////////////////////////////// class Operator { public: using Condition = AssignedVariable; using Conditions = AssignedVariables; static Operator fromSAS(std::istream &istream, const Variables &variables); public: const Predicate &predicate() const; const Conditions &preconditions() const; const Effects &effects() const; size_t costs() const; private: Operator() = default; Predicate m_predicate; Conditions m_preconditions; Effects m_effects; size_t m_costs; }; //////////////////////////////////////////////////////////////////////////////////////////////////// } } #endif