diff --git a/include/plasp/pddl/translation/Goal.h b/include/plasp/pddl/translation/Goal.h index 410daf5..9c90ba2 100644 --- a/include/plasp/pddl/translation/Goal.h +++ b/include/plasp/pddl/translation/Goal.h @@ -7,6 +7,7 @@ #include +#include #include #include @@ -39,12 +40,11 @@ inline void translateGoal(colorlog::ColorStream &outputStream, const ::pddl::nor }; const auto handleDerivedPredicate = - [&](const ::pddl::normalizedAST::DerivedPredicatePointer &, bool = true) + [&](const ::pddl::normalizedAST::DerivedPredicatePointer &derivedPredicate, bool isPositive = true) { outputStream << std::endl << colorlog::Function("goal") << "("; // TODO: assert that goal is variable-free - // TODO: implement - //translatePredicateToVariable(outputStream, *predicate, isPositive); + translateDerivedPredicateToVariable(outputStream, *derivedPredicate, isPositive); outputStream << ")."; }; diff --git a/src/plasp/pddl/TranslatorASP.cpp b/src/plasp/pddl/TranslatorASP.cpp index 3db9582..037039b 100644 --- a/src/plasp/pddl/TranslatorASP.cpp +++ b/src/plasp/pddl/TranslatorASP.cpp @@ -463,7 +463,7 @@ void TranslatorASP::translateGoal() const m_outputStream << colorlog::Heading2("goal"); const auto &goal = m_description.problem.value()->goal.value(); - // TODO: refactor + ::plasp::pddl::translateGoal(m_outputStream, goal); m_outputStream << std::endl;