#include #include #include namespace plasp { namespace sas { //////////////////////////////////////////////////////////////////////////////////////////////////// // // MutexGroup // //////////////////////////////////////////////////////////////////////////////////////////////////// MutexGroup MutexGroup::fromSAS(parsebase::Parser<> &parser, const Variables &variables) { MutexGroup mutexGroup; parser.expect("begin_mutex_group"); const auto numberOfFacts = parser.parse(); mutexGroup.m_facts.reserve(numberOfFacts); for (size_t j = 0; j < numberOfFacts; j++) { mutexGroup.m_facts.emplace_back(Fact::fromSAS(parser, variables)); if (mutexGroup.m_facts[j].value() == Value::None) throw parsebase::ParserException(parser.location(), "mutex groups must not contain values"); } parser.expect("end_mutex_group"); return mutexGroup; } //////////////////////////////////////////////////////////////////////////////////////////////////// const MutexGroup::Facts &MutexGroup::facts() const { return m_facts; } //////////////////////////////////////////////////////////////////////////////////////////////////// } }