Fixed incorrect output format of conditional effects with SAS.
This commit is contained in:
parent
dd33e47dd9
commit
568945c7a8
@ -1,5 +1,11 @@
|
||||
# Change Log
|
||||
|
||||
## (unreleased)
|
||||
|
||||
Bug Fixes:
|
||||
|
||||
* fixes incorrect output format of conditional effects with SAS
|
||||
|
||||
## 3.0.2 (2016-08-18)
|
||||
|
||||
Features:
|
||||
|
@ -171,34 +171,34 @@ void TranslatorASP::translateActions() const
|
||||
{
|
||||
const auto &conditions = effect.conditions();
|
||||
|
||||
std::for_each(conditions.cbegin(), conditions.cend(),
|
||||
[&](const auto &condition)
|
||||
{
|
||||
// Conditions of conditional effects
|
||||
m_outputStream << utils::RuleName("precondition") << "(";
|
||||
operator_.printPredicateAsASP(m_outputStream);
|
||||
m_outputStream << ", " << utils::Keyword("effect") << "(" << utils::Number(std::to_string(currentEffectID)) << "), ";
|
||||
condition.variable().printNameAsASPPredicate(m_outputStream);
|
||||
m_outputStream << ", ";
|
||||
condition.value().printAsASPPredicate(m_outputStream);
|
||||
m_outputStream << ")." << std::endl;
|
||||
});
|
||||
|
||||
m_outputStream << utils::RuleName("postcondition") << "(";
|
||||
operator_.printPredicateAsASP(m_outputStream);
|
||||
|
||||
if (conditions.empty())
|
||||
m_outputStream << ", " << utils::Keyword("effect") << "(" << utils::Reserved("unconditional") << "), ";
|
||||
else
|
||||
{
|
||||
m_outputStream << ", " << utils::Keyword("effect") << "(" << utils::Number(std::to_string(currentEffectID)) << "), ";
|
||||
currentEffectID++;
|
||||
}
|
||||
|
||||
effect.postcondition().variable().printNameAsASPPredicate(m_outputStream);
|
||||
m_outputStream << ", ";
|
||||
effect.postcondition().value().printAsASPPredicate(m_outputStream);
|
||||
m_outputStream << ")." << std::endl;
|
||||
|
||||
std::for_each(conditions.cbegin(), conditions.cend(),
|
||||
[&](const auto &condition)
|
||||
{
|
||||
// Conditions of conditional effects
|
||||
m_outputStream
|
||||
<< utils::RuleName("precondition") << "("
|
||||
<< utils::Keyword("effect") << "(" << utils::Number(std::to_string(currentEffectID)) << "), ";
|
||||
condition.variable().printNameAsASPPredicate(m_outputStream);
|
||||
m_outputStream << ", ";
|
||||
condition.value().printAsASPPredicate(m_outputStream);
|
||||
m_outputStream << ")." << std::endl;
|
||||
});
|
||||
|
||||
if (!conditions.empty())
|
||||
currentEffectID++;
|
||||
});
|
||||
|
||||
m_outputStream << utils::RuleName("costs") << "(";
|
||||
|
Reference in New Issue
Block a user